3 日や 5 週間 (フィールド タイプが 1 つだけの期間) などの期間を指定DateTimeすると、その期間の最も近い単位に丸めたい (つまり、「5 日」の 5 は無視する)。例:
例 1:
- 期間: 3日間。
- DateTime:水曜日 4:26 AM UTC (2013-05-15T04:26:00Z)
- 丸められた DateTime:水曜日の午前 0 時 (UTC) (2013-05-15T00:00:00Z)
例 2:
- 期間: 5週間。
- DateTime:水曜日 4:26 AM UTC (2013-05-15T04:26:00Z)
- 丸められた DateTime:月曜日の午前 0 時 (UTC) (2013-05-13T00:00:00Z)
私の最初のアイデアは、PeriodのDurationFieldType getFieldTypes()メソッドを使用し、 a 内の一致するすべてのフィールドDateTime(最大フィールドの下) に対して、それらをゼロに設定することでした。DateTimeFieldTypeただし、 a から sを取得するDateTime方法と、それらを a と比較する方法がわかりませんDurationFieldType。
if else大げさなアプローチはしないほうがいいと思います。