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+"일은 토요일입니다.");
}