JAVA_日付が平日かどうかを判断する(休日除外と週末出勤調整)


JAvaは、日付が平日かどうかを判断します(祝日の除外と週末出勤の調整)
現在の日付が平日かどうかを判断し、週末かどうかを判断し、祝日かどうかを判断し、週末に出勤を調整するかどうかを含む.
週末かどうかを判断するにはjavaの方法で実現できますが、祝日かどうかを判断し、週末出勤を調整するには、自分でメンテナンスする必要があります.
2つの集合をして、それぞれ祝日と出勤日を調整します.
public class CalendarTest {
    //     
    private static List holidayList = new ArrayList();  
    //      
    private static List weekendList = new ArrayList();
    /** 
     * @param args
     * return void         
     * throws 
     */
    public static void main(String[] args) {
        try {

            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            Calendar ca = Calendar.getInstance();
            Date d = df.parse("2016-09-15");
            ca.setTime(d);//      

            CalendarTest ct = new CalendarTest();
            ct.initHolidayList("2016-09-15");//     
            ct.initHolidayList("2016-09-16");//     
            ct.initHolidayList("2016-09-17");//     

            ct.initWeekendList("2016-09-18");//        

            boolean k = checkHoliday(ca);
            System.out.println(k);

        } catch ( Exception e) {
            // TODO: handle exception
            System.out.println(e.getClass());
            e.printStackTrace();
        }

    }




     /**
      * 
      *           
      * @param calendar           
      * @return 
      * return boolean            true    ,  false     
      * throws 
      */
     public static boolean checkHoliday(Calendar calendar) throws Exception{

         //           
         if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY || 
                 calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){

            //          
             for (Calendar ca : weekendList) {
                if(ca.get(Calendar.MONTH) == calendar.get(Calendar.MONTH) &&
                        ca.get(Calendar.DAY_OF_MONTH) == calendar.get(Calendar.DAY_OF_MONTH)&&
                        ca.get(Calendar.YEAR) == calendar.get(Calendar.YEAR)){
                    return false;
                }
            }

             return true;
         }
         //          
         for (Calendar ca : holidayList) {
            if(ca.get(Calendar.MONTH) == calendar.get(Calendar.MONTH) &&
                    ca.get(Calendar.DAY_OF_MONTH) == calendar.get(Calendar.DAY_OF_MONTH)&&
                    ca.get(Calendar.YEAR) == calendar.get(Calendar.YEAR)){
                return true;
            }
        }

         return false;
     }

     /**
      * 
      *         list
      * @param date              2016-05-09
      * return void         
      * throws 
      */
    public void initHolidayList(String date){

            String [] da = date.split("-");

            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.YEAR, Integer.valueOf(da[0]));
            calendar.set(Calendar.MONTH, Integer.valueOf(da[1])-1);//      1,0    
            calendar.set(Calendar.DAY_OF_MONTH, Integer.valueOf(da[2]));
            holidayList.add(calendar);
    }

    /**
     *                
     */
    public void initWeekendList(String date){
        String [] da = date.split("-");

        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR, Integer.valueOf(da[0]));
        calendar.set(Calendar.MONTH, Integer.valueOf(da[1])-1);//      1,0    
        calendar.set(Calendar.DAY_OF_MONTH, Integer.valueOf(da[2]));
        weekendList.add(calendar);