n-3104の備忘録
更新履歴
取得中です。

Java > ある日付から日付までの定型処理


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

似たようなコードを何度か書いている気がするので、今回は保存しておこう。

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;
    }
}
合計: -
今日: -
昨日: -