본문 바로가기

카테고리 없음

java 특정 기간 내 수, 금, 토에 해당 하는 날짜 출력하기

 

 

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class TestMain {
    public static List<List<String>> getDates(String startDate, String endDate) throws ParseException {
    List<List <String>> result = new ArrayList<>();
    // String pattern = "MM/dd/yyyy"; 
    // Date date1=new SimpleDateFormat(pattern).parse(startDate);
    // SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
    // Calendar calendar = Calendar.getInstance();
    // calendar.setTime(date1);
    //        System.out.println(calendar);
    //        System.out.println(calendar.setTime(date1.getDate()+1));
    String pattern = "MM/dd/yyyy";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);    
    String[] token = startDate.split("/");
        int startYear =  Integer.parseInt(token[2]);
        int startMonth =  Integer.parseInt(token[0]) - 1;
        int startDay = Integer.parseInt(token[1]);        
        token = endDate.split("/");
        int endYear =  Integer.parseInt(token[2]);
        int endMonth =  Integer.parseInt(token[0]) - 1;
        int endDay = Integer.parseInt(token[1]);      

        String issuedDate = null;
        String issuedWeek = null;        

        List<String> checkDate = new ArrayList<>();
        List<String> checkWeek = new ArrayList<>();        

        Calendar startCal = new GregorianCalendar(startYear, startMonth, startDay);
        Calendar endCal = new GregorianCalendar(endYear, endMonth, endDay);        

        do {
            // get the day of the week for the current day
            int day = startCal.get(Calendar.DAY_OF_WEEK);
            // check if it is a Saturday or Sunday
            if(day == Calendar.WEDNESDAY) {
                issuedWeek = "Wed";
                issuedDate = simpleDateFormat.format(startCal.getTime());
                checkDate.add(issuedDate);
                checkWeek.add(issuedWeek);
            } else if (day == Calendar.FRIDAY) {
                issuedWeek = "Fri";
                issuedDate = simpleDateFormat.format(startCal.getTime());
                checkDate.add(issuedDate);
                checkWeek.add(issuedWeek);
            } else if (day == Calendar.SATURDAY) {
                issuedWeek = "Sat";
                issuedDate = simpleDateFormat.format(startCal.getTime());
                checkDate.add(issuedDate);
                checkWeek.add(issuedWeek);
            }
            // advance to the next day
            startCal.add(Calendar.DAY_OF_YEAR, 1);
        }  while (!endCal.equals(startCal));

        result.add(checkDate);
        result.add(checkWeek);
        //System.out.println(checkDate);        
    return result;
}

public static void main(String[] args) throws ParseException {
    String startDate = "04/03/2019";
    String endDate = "06/10/2019";

    List<List <String>> list = new ArrayList<>();

    list = getDates(startDate, endDate);
    //System.out.println(list[1]);
    list.stream().forEach(System.out::println);
    }
}