2011-07-07 40 views
3

今週の開始日と終了日はどのように計算できますか? 私はこれが標準のアンドロイドのlibsやdate4jのようなlibでは実装されていないことを発見しました。Androidで週の開始日と終了日を取得する

これを実装する簡単で簡単な方法があれば、あるいは私は自転車をもう一度実装する必要がありますか?

ありがとうございました。

+0

可能重複(http://stackoverflow.com/questions/10451784/getting-the-dates-of-the-current-week-インアンドロイド) –

答えて

4

たぶんMonthDisplayHelperはあなたのための助けになることができます。

幸運を祈る!

4

date4jでこれを行うためのコードはそれほどありません。 週の最初の日の計算例:上記

private void firstDayOfThisWeek(){ 
    DateTime today = DateTime.today(TimeZone.getDefault()); 
    DateTime firstDayThisWeek = today; //start value 
    int todaysWeekday = today.getWeekDay(); 
    int SUNDAY = 1; 
    if(todaysWeekday > SUNDAY){ 
     int numDaysFromSunday = todaysWeekday - SUNDAY; 
     firstDayThisWeek = today.minusDays(numDaysFromSunday); 
    } 
    System.out.println("The first day of this week is : " + firstDayThisWeek); 
    } 

は日曜日が週の始まりである規則に従います。いくつかの管轄区域では、その条約は適用されないので、そのような場合のコードを変更する必要があります。

1

Joda-Time 2.3ライブラリを使用すると、この種の日時作業がしばしば簡単になります。

取り込みthis answerから同様の質問へ。

LocalDate now = new LocalDate(); 
System.out.println(now.withDayOfWeek(DateTimeConstants.MONDAY)); 
System.out.println(now.withDayOfWeek(DateTimeConstants.SUNDAY)); 

あなたはisBefore/isAfterminusWeeks/plusWeeksは、過去/未来の値を取得するために呼び出すことができます。

1

これは私のために働いた...週の最後の日のために

Calendar cal = Calendar.getInstance(); 
int year = cal.get(Calendar.YEAR); 
cal.set(Calendar.DAY_OF_WEEK, cal.MONDAY); 
String firstWkDay = String.valueOf(cal.getTime()); 
//cal.set(Calendar.DAY_OF_WEEK, cal.SUNDAY); 
cal.add(Calendar.DAY_OF_WEEK, 6); 
String lastWkDay = String.valueOf(cal.getTime()); 

、これは私が取得するために使用されているかどうかであるあなたはcal.set(Calendar.DAY_OF_WEEK, cal.SUNDAY);を使用することができますが、それは一部のデバイス

+0

"以前の日曜日は一部のデバイスで返されます"なぜその理由を説明できますか?私のデバイスはこの問題を抱えていると思うからです。 –

+0

短い答えは... Androidの断片化です。 上記のコードスニペットを試してみてください – aphoe

0

に前の日曜日を返します。日付:[Androidの中で、現在の週の日付を取得する]の

Calendar c = Calendar.getInstance(); 
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
c.setFirstDayOfWeek(Calendar.MONDAY); 

startOfWeek = c.getTime(); 
関連する問題