Joda時間に平日を追加することはできますか?
たとえば、現在の日付が 01/03 金曜日の場合、date + 1 は 02/03 ではなく 04/03 月曜日を返す必要があります。
私の知る限り、JodaTimeでこれを自動的に行う組み込みの方法はありません。ただし、平日に到達するまでループで日付をインクリメントする独自のメソッドを作成することもできます。
正確に何が必要かによっては、これはあなたが思っているよりも(はるかに)複雑になる可能性があることに注意してください。たとえば、休日もスキップする必要がありますか?休日となる日は、お住まいの国によって異なります。また、一部の国(アラブ諸国など)では、週末は土曜日と日曜日ではなく、木曜日と金曜日になります。
LocalDate newDate = new LocalDate();
int i=0;
while(i<days)//days == as many days as u want too
{
newDate = newDate.plusDays(1);//here even sat and sun are added
//but at the end it goes to the correct week day.
//because i is only increased if it is week day
if(newDate.getDayOfWeek()<=5)
{
i++;
}
}
System.out.println("new date"+newDate);
クラスYearMonthDayは非推奨であり、使用しないでください。単純な DateTime に変更すると、次のように呼び出して曜日を取得できます。
dateTime.getDayOfWeek();
金曜日の場合は 5 になります。
アプローチの 1 つは、次のようなカスタムの addDays メソッドを作成することです。
addDays(DateTime dateTime, int days) {
for(int i=0;i<days;i++){
dateTime.plusDays(1);
if(dateTime.getDayOfWeek()==6) dateTime.plusDays(2); // if Saturday add 2 more days }
}