3

ボタンクリックで来週の値を取得したいので、以下は私のコードです

OnCreate メソッド Calender オブジェクトを宣言し、現在の日付を出力します

    int WeekNumber;
    Calendar mCalendar = Calendar.getInstance();
    mCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    SimpleDateFormat mDF = new SimpleDateFormat("dd MMMM");
    String printDate = mDF.format(mCalendar.getTime());
    mCalendar.add(Calendar.DAY_OF_MONTH, 6);
    String printDate2 = mDF.format(mCalendar.getTime());

    System.out.println(printDate + " >> " + printDate2);
    mTextView.setText(printDate + " >> " + printDate2);

次へボタンクリック

mButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            WeekNumber++;
            String ss=getNextWeek(WeekNumber);
            System.out.println("ss "+ss);
            mTextView.setText(ss);
        }
    });

getNextWeek() メソッド コード

public static String getNextWeek(int weekFromToday) {
    System.out.println("Pass Wee "+weekFromToday);
    Calendar mCalendar =  Calendar.getInstance();
    mCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    mCalendar.set(Calendar.WEEK_OF_YEAR, 
            mCalendar.get(Calendar.WEEK_OF_YEAR) + weekFromToday);          

    SimpleDateFormat mDF = new SimpleDateFormat("dd MMMM");
    String printDate = mDF.format(mCalendar.getTime());
    System.out.println(printDate);

    //gestureEvent.setText(reportDate);
    mCalendar.add(Calendar.DAY_OF_MONTH, 6);
    String printDate2 = mDF.format(mCalendar.getTime());
    System.out.println(printDate + " >> " + printDate2);
    return printDate + " >> " + printDate2;        
}

上記のコードを実行すると、現在の週02 Febuarry >> 08 Febuaryの表示が正しく表示されますが、次のボタンをクリックすると間違った週の値が出力される23 March >> 29 Marchので、どうすれば解決できますか?

4

1 に答える 1

2

私はyコードで解決策を得ました。weekNumber値を次のように初期化します

WeekNumber=mCalendar.get(Calendar.WEEK_OF_YEAR);

だから私は行の上にコメントするだけで、残りのコードはそのままで、私にとってはうまく機能しています!!

于 2014-02-04T04:55:56.373 に答える