2

私は次の断片を使用して、Jodaのいくつかの期間の開始と終了を見つけています。私の左肩の小悪魔はそれが行く道だと言っています...しかし私は彼を信じていません。

ジョーダの経験がある人は、簡単に見て、小さな男が正しいと教えてもらえますか?

(UTC日時オブジェクトにのみ使用されます)

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

/* Year */
private static DateTime endOfYear(DateTime dateTime) {
    return endOfDay(dateTime).withMonthOfYear(12).withDayOfMonth(31);
}

private static DateTime beginningOfYear(DateTime dateTime) {
    return beginningOfMonth(dateTime).withMonthOfYear(1);
}

/* Month */
private static DateTime endOfMonth(DateTime dateTime) {
    return endOfDay(dateTime).withDayOfMonth(dateTime.dayOfMonth().getMaximumValue());
}

private static DateTime beginningOfMonth(DateTime dateTime) {
    return beginningOfday(dateTime).withDayOfMonth(1);
}

/* Day */
private static DateTime endOfDay(DateTime dateTime) {
    return endOfHour(dateTime).withHourOfDay(23);
}

private static DateTime beginningOfday(DateTime dateTime) {
    return beginningOfHour(dateTime).withHourOfDay(0);
}

/* Hour */
private static DateTime beginningOfHour(DateTime dateTime) {
    return dateTime.withMillisOfSecond(0).withSecondOfMinute(0).withMinuteOfHour(0);
}

private static DateTime endOfHour(DateTime dateTime) {
    return dateTime.withMillisOfSecond(999).withSecondOfMinute(59).withMinuteOfHour(59);
}
4

2 に答える 2

1

JodaはDateMidnightとLocalDateを提供します。これにより、実際には日の境界のみを気にする場合に、時間と分をあまり処理する必要がなくなる可能性があります。LocalDateは、インターフェイスReadablePartialも実装しており、関心のあるフィールドを反映する他の実装を作成することを検討する価値があるかもしれません。

于 2010-03-22T22:19:04.707 に答える
0

私はJavaライブラリが0ベースであることを知っています(つまり、1月は0、12月は11です)。Jodaはそうではないと思いますが、よくわからない場合は再確認してください。

于 2010-03-22T22:53:05.637 に答える