過ぎた月の最初のSunday
前に選択したいMonday
。
それSunday
は同じ月か前月かもしれませんが、私はの日付が欲しいですSunday
。取得するために以下のロジックを試しSunday
ました。今月は機能しますが、そのように別の月を過ぎようとするとNov-2017
、もう一度に変更MONDAY-2
する必要がありMONDAY-3
ます。したがって、これは正しい方法ではありません。では、どうすればこれを達成できますか?
Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("Date " + c.getTime());
c.set(Calendar.DAY_OF_MONTH, Calendar.MONDAY - 2);
System.out.println("Date " + c.getTime());
コードに日付を渡したいのですが。では、どうすればそれを行うことができますか?変数に日付を保存している場合のように、その変数によって提供される入力に従って、ロジックを計算し、出力を提供する必要があります
@Test
public void testDate() throws ParseException {
SimpleDateFormat fmt = new SimpleDateFormat("dd-MMM-yyyy");
Date d = fmt.parse("01-Nov-2017");
System.out.println(d);
Calendar c = Calendar.getInstance();
c.setTime(d);
getSundayBefore1thMondayOfMonth(c);
}
public void getSundayBefore1thMondayOfMonth(Calendar c) {
c.set(Calendar.DAY_OF_MONTH, 1);
int wd = c.get(Calendar.DAY_OF_WEEK);
if (wd > Calendar.MONDAY ) {
c.add(Calendar.DAY_OF_MONTH, 7);
}
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(c.getTime());
c.add(Calendar.DAY_OF_MONTH, -1);
System.out.println(c.getTime());
}
Wed Nov 01 00:00:00 CST 2017
Mon Nov 06 00:00:00 CST 2017
Sun Nov 05 00:00:00 CST 2017
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加