เริ่มแรกเลยเราก็มาสร้าง Project กันก่อน เลือก Version กันตามชอบได้เลยนะครับ ส่วนผมของเลือกMin เป็น 4.0 แล้วกัน
activity_main.xml
1: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2: xmlns:tools="http://schemas.android.com/tools"
3: android:layout_width="match_parent"
4: android:layout_height="match_parent"
5: tools:context="app.kamonwat.showdatewithtext.MainActivity" >
6: <TextView
7: android:layout_marginTop="30dp"
8: android:id="@+id/show_date_dayofweek"
9: android:layout_gravity="center"
10: android:layout_width="wrap_content"
11: android:layout_height="wrap_content"
12: android:layout_centerHorizontal="true"
13: android:textSize="16sp"
14: android:text="Monday" />
15: <TextView
16: android:id="@+id/show_date_day"
17: android:layout_below="@+id/show_date_dayofweek"
18: android:layout_gravity="center"
19: android:layout_width="wrap_content"
20: android:layout_height="wrap_content"
21: android:layout_centerHorizontal="true"
22: android:textSize="36sp"
23: android:text="24" />
24: <TextView
25: android:id="@+id/show_date_monthyear"
26: android:layout_below="@+id/show_date_day"
27: android:layout_gravity="center"
28: android:layout_width="wrap_content"
29: android:layout_height="wrap_content"
30: android:layout_centerHorizontal="true"
31: android:textSize="16sp"
32: android:text="September 2014" />
33: </RelativeLayout>
Textview show_date_dayofweek จะใช้แสดงชื่อของวันเช่น วันจันทร์ วันอังคาร
Textview show_date_day ใช้แสดงเลขวันที่
Textview show_date_monthyear ใช้แสดงชื่อของเดือนและปี
ต่อมาเรามาดูส่วนของ Code กันบ้าง
MainActivity.java
1: package app.kamonwat.showdatewithtext;
2: import java.text.SimpleDateFormat;
3: import java.util.Calendar;
4: import android.annotation.SuppressLint;
5: import android.app.Activity;
6: import android.os.Bundle;
7: import android.widget.TextView;
8: public class MainActivity extends Activity {
9: private TextView txt_dayofweek, txt_day, txt_month_year;
10: final String[] MONTH = { "January", "February", "March", "April", "May",
11: "June", "July", "August", "September", "October", "November",
12: "December" };
13: private int pYear;
14: private int pMonth;
15: private int pDay;
16: @SuppressLint("SimpleDateFormat") @Override
17: protected void onCreate(Bundle savedInstanceState) {
18: super.onCreate(savedInstanceState);
19: setContentView(R.layout.activity_main);
20: txt_day = (TextView) findViewById(R.id.show_date_day);
21: txt_dayofweek = (TextView) findViewById(R.id.show_date_dayofweek);
22: txt_month_year = (TextView) findViewById(R.id.show_date_monthyear);
23: /** Get the current date */
24: Calendar cal = Calendar.getInstance();
25: pYear = cal.get(Calendar.YEAR);
26: pMonth = cal.get(Calendar.MONTH);
27: pDay = cal.get(Calendar.DAY_OF_MONTH);
28: String day = new SimpleDateFormat("EEEE").format(cal.getTime());
29: txt_day.setText("" + pDay); //show day
30: txt_dayofweek.setText(day); //show name of day
31: txt_month_year.setText(MONTH[pMonth] + " " + pYear); //show month and year
32: }
33: }
สังเกตบรรทัดที่ 24 เราจะประกาศตัวแปร Calendar cal = Calendar.getInstance(); เพื่อเรียกใช้ปฏิทิน และจะเรียกวันที่เป็นวันปัจจุบัน
บรรทัดที่ 25 จะใช้ตัวแปร pYear เก็บค่าของปี โดยใช้คำสั่ง cal.get(Calendar.YEAR); ค่าที่ได้จะเป็น 2014
บรรทัดที่ 26 จะใช้ตัวแปร pMonth เก็บค่าของเดือน โดยใช้คำสั่ง cal.get(Calendar.MONTH); ค่าที่ได้จะเป็น 0 - 11
บรรทัดที่ 27 จะใช้ตัวแปร pDay เก็บค่าของเดือน โดยใช้คำสั่ง cal.get(Calendar.DAY_OF_MONTH); ค่าที่ได้จะเป็น 1 - 31 แล้วแต่เดือน
บรรทัดที่ 28 เราจะใช้ String เก็บชื่อของวันนั้นๆว่าเป็นวันอะไร โดยจะใช้คำสั่ง new SimpleDateFormat("EEEE").format(cal.getTime()); ค่าของ String จะได้ออกมาเป็น Monday, Thursday, ... แล้วแต่ว่าวันนั้นจะเป็นวันอะไร
หลังจากได้ค่าที่จำเป็นทั้งหมดแล้วก็ทำการกำหนดให้ Textview แสดงค่าที่เราเก็บเอาไว้ สำหรับการแสดงชื่อเดือน ก็ใช้ Array String เก็บชื่อเดือนทั้ง 12 เดือนเอาไว้ก่อนแล้วค่อนใช้ pMonth เป็น Index ในการเรียกออกมาจาก Array
ง่ายๆใช่มั้ยครับ แค่ดึงค่าจาก Calendar แล้วนำมาแสดงใน Textview เท่านั้นเอง
AndroidManifest.xml
1: <?xml version="1.0" encoding="utf-8"?>
2: <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3: package="app.kamonwat.showdatewithtext"
4: android:versionCode="1"
5: android:versionName="1.0" >
6: <uses-sdk
7: android:minSdkVersion="14"
8: android:targetSdkVersion="21" />
9: <application
10: android:allowBackup="true"
11: android:icon="@drawable/ic_launcher"
12: android:label="@string/app_name"
13: android:theme="@style/AppTheme" >
14: <activity
15: android:name=".MainActivity"
16: android:label="@string/app_name" >
17: <intent-filter>
18: <action android:name="android.intent.action.MAIN" />
19: <category android:name="android.intent.category.LAUNCHER" />
20: </intent-filter>
21: </activity>
22: </application>
23: </manifest>
Source Code
https://drive.google.com/file/d/0B3lD-OnLc3-mam96c3NJOEFYZXM/view?usp=sharing