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;
}
}