n-3104の備忘録
ある日付から日付までの定型処理
最終更新:
n-3104
-
view
似たようなコードを何度か書いている気がするので、今回は保存しておこう。
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashSet; import java.util.Set; public class LabelCreator { private static Set holidaySet; static { try { // 除外処理に利用する祝日Setの初期化 holidaySet = new HashSet(); DateFormat format = new SimpleDateFormat("yyyy/MM/dd"); String[] holidays = { "2008/04/29" }; for (int i = 0; i < holidays.length; i++) { Date date = format.parse(holidays[i]); holidaySet.add(date); } } catch (ParseException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { String from = "2008/04/07"; String to = "2008/04/30"; DateFormat format = new SimpleDateFormat("yyyy/MM/dd"); Date dateFrom = format.parse(from); Date dateTo = format.parse(to); Calendar calendar = Calendar.getInstance(); calendar.setTime(dateFrom); DateFormat outputFormat = new SimpleDateFormat("yyyy/MM/dd (E)"); for (int i = 1; calendar.getTimeInMillis() <= dateTo.getTime(); calendar.add(Calendar.DATE, 1)) { if (isSchoolDate(calendar)) { System.out.println("////////////////////////////////////"); System.out.println("//// " + i++ + "日目 " + outputFormat.format(calendar.getTime())); System.out.println("////////////////////////////////////"); System.out.println(); } } } private static boolean isSchoolDate(Calendar calendar) { int day = calendar.get(Calendar.DAY_OF_WEEK); // 土日は除く if (day == Calendar.SATURDAY || day == Calendar.SUNDAY) { return false; } // 祝日は除く if (holidaySet.contains(calendar.getTime())) { return false; } return true; } }