26. 자바 ( 원하는 날짜 요일인지 구하기 )

jhnada·2022년 7월 29일
0

원하는 날짜가 무슨요일인지 구해보기

기준날짜

int year= 2022;
int month = 7;
int day = 29;

사전 조건

(1) 1900.1.1 ~ 내가 원하는 날짜까지의 총 일수 1900.1.1일이 일요일로 시작하기에 기준으로 잡힘.
ㅡ 변수 - 윤달
1년 365일, 윤달이 있는 1년은 366일
(2) 일수 % 7 = 0(일), 1(월), 2(화), 3(수), 4(목), 5(금), 6(토)

내가 원하는 날짜까지의 총 일수 구하기

  • 변수 선언 ( 총 일수를 구하기 위한 새로운 변수 설정 )
    int totalDays; //int totalDays=0;

    totalDays = totalDays + (year-1900)/4;
    2021까지의 일수 + 만약 2022년이 윤달이면 +1이 되어있는 상태
    System.out.println((year-1)+"년까지의 총 일수 "+totalDays );
    ex) 1904 - 1900) 4 % 4 == 0

  • 요일이 궁금한 날짜의 달이 1월 또는 2월이면 윤달이 안 지났기 때문에
    -1을 해준다.
    2022.7.29 -----> 2021년 까지의 일수 + 2022년이 윤달이고 3월이상이면 + 1

    if((year-1900)%4==0 && month <3) {
    totalDays = totalDays -1;
    }

  • 원하는 년도 전까지의 총 일수를 구했고, 원하는 년도 ex)2022년도 의 요일을 더해줘야 한다.

    if(month==1) {
    totalDays = totalDays +day;
    }
    if(month==2) {
    totalDays = totalDays +day+31;
    }
    if(month==3) {
    totalDays = totalDays +day+31+28;
    }
    if(month==4) {
    totalDays = totalDays +day+31+28+31;
    }
    if(month==5) {
    totalDays = totalDays +day+31+28+31+30;
    }
    if(month==6) {
    totalDays = totalDays +day+31+28+31+30+31;
    }
    if(month==7) {
    totalDays = totalDays +day+31+28+31+30+31+30;
    }
    if(month==8) {
    totalDays = totalDays +day+31+28+31+30+31+30+31;
    }
    if(month==9) {
    totalDays = totalDays +day+31+28+31+30+31+30+31+31;
    }
    if(month==10) {
    totalDays = totalDays +day+31+28+31+30+31+30+31+31+30;
    }
    if(month==11) {
    totalDays = totalDays +day+31+28+31+30+31+30+31+31+30+31;
    }
    if(month==12) {
    totalDays = totalDays +day+31+28+31+30+31+30+31+31+30+31+30;
    }
    위와 같이 7월29일이면 1~6월 까지의 요일수를 더해주고 +29(day)를 해준다.

        

여기까지 요일 수를 구하는 방법

이제 구한 요일수를 일~월로 바꾸는 방법

총 구한 요일을 7로 나누고 새로운 변수를 선언해준다.
int dow = totalDays%7;

  • 7로 나누었을때 몫이 0이면 일요일로 잡고 다음과 같이 코딩한다.
    if(dow==0) {
    System.out.println(year+"년"+month+"월"+day+"일은 일요일입니다.");
    }
    if(dow==1) {
    System.out.println(year+"년"+month+"월"+day+"일은 월요일입니다.");
    }
    if(dow==2) {
    System.out.println(year+"년"+month+"월"+day+"일은 화요일입니다.");
    }
    if(dow==3) {
    System.out.println(year+"년"+month+"월"+day+"일은 수요일입니다.");
    }
    if(dow==4) {
    System.out.println(year+"년"+month+"월"+day+"일은 목요일입니다.");
    }
    if(dow==5) {
    System.out.println(year+"년"+month+"월"+day+"일은 금요일입니다.");
    }
    if(dow==6) {
    System.out.println(year+"년 "+month+"월 "+day+"일은 토요일입니다.");
    }
  • 결과물
profile
밑바닥부터 배우는 초짜 개발자

0개의 댓글