Goodroid

GoodroidはAndroidアプリ開発のための情報をコラムやブログで紹介するサイトです。


現在の日付を取得する
ここでは現在の日付を取得する方法を確認していきます。

現在の日付を取得を取得するためには「 Calendar 」クラスを用います。
サンプルでは「年」「月」「日」「曜日」「月の週」「年の週」を取得し表示していますが、その他にもgetメソッドで以下の値も取得できます。

定数 説明
int YEAR 年を表す
int MONTH 月を表す
int DATE 日を表す
int DAY_OF_MONTH 日を表す
int DAY_OF_WEEK 曜日を表す
int DAY_OF_WEEK_IN_MONTH 月の何回目の曜日かを表す
int DAY_OF_YEAR 年の何回目の日かを表す
int SUNDAY 日曜日を表すフィールド値
int MONDAY 月曜日を表すフィールド値
int TUESDAY 火曜日を表すフィールド値
int WEDNESDAY 水曜日を表すフィールド値
int THURSDAY 木曜日を表すフィールド値
int FRIDAY 金曜日を表すフィールド値
int SATURDAY 土曜日を表すフィールド値
int FIELD_COUNT 重複しないフィールド数
定数 説明
int JANUARY 1月を表すフィールド値
int FEBRUARY 2月を表すフィールド値
int MARCH 3月を表すフィールド値
int APRIL 4月を表すフィールド値
int MAY 5月を表すフィールド値
int JUNE 6月を表すフィールド値
int JULY 7月を表すフィールド値
int AUGUST 8月を表すフィールド値
int SEPTEMBER 9月を表すフィールド値
int OCTOBER 10月を表すフィールド値
int NOVEMBER 11月を表すフィールド値
int DECEMBER 12月を表すフィールド値
int UNDECIMBER 13月を表すフィールド値(太陰暦)
int ERA ユリウス暦のADまたはBCなどの年代を表す

DateActivity.java
package goodroid.sample.date;

import goodroid.sample.date.R;

import java.util.Calendar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class DateActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Calendar calendar = Calendar.getInstance();

        // 年月日を取得
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);

        // 曜日を取得
        String weekday = null;
        switch(calendar.get(Calendar.DAY_OF_WEEK)){
        case 1:
        	weekday = "日";
        	break;
        case 2:
        	weekday = "月";
        	break;
        case 3:
        	weekday = "火";
        	break;
        case 4:
        	weekday = "水";
        	break;
        case 5:
        	weekday = "木";
        	break;
        case 6:
        	weekday = "金";
        	break;
        case 7:
        	weekday = "土";
        	break;
        }

        // 何週目かを取得する(月、年)
        int week1 = calendar.get(Calendar.WEEK_OF_MONTH);
        int week2 = calendar.get(Calendar.WEEK_OF_YEAR);

        TextView tv1 = (TextView)findViewById(R.id.date);
        tv1.setText(year + "年" + month + "月" + day + "日 (" + weekday + ")");

        TextView tv2 = (TextView)findViewById(R.id.weekOfMonth);
        tv2.setText("月の第" + week1 + "週目");

        TextView tv3 = (TextView)findViewById(R.id.weekOfYear);
        tv3.setText("年の第" + week2 + "週目");

    }
}

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/date"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/weekOfMonth"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/weekOfYear"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

曜日は1~7のint型の数値で表すため、『1=日, 2=月, ... , 7=土』とswitch文で曜日の文字列を取得しています。

実行結果

5066 views | コメント:0 | 2012-06-19
コメント
まだこの記事にコメントはありません
コメントの投稿
名前 (必須)

メールアドレス (非公開)

本文(必須)

パスワード (必須)
(半角数字4桁)