본문 바로가기
java&eclipse 코딩 알고리즘/20231206

WeekdayTest

by 몽상크리에이터 2023. 12. 14.

package k20231206;

 

import java.util.Iterator;

import java.util.Scanner;

 

public class WeekdayTest {

 

public static void main(String[] args) {

 

Scanner scanner = new Scanner(System.in);

System.out.print("요일을 알고 싶은 년, 월, 일을 입력하세요: ");

int year = scanner.nextInt();

int month = scanner.nextInt();

int day = scanner.nextInt();

// boolean isLeapYear = year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ;

// 서기 1년 1월 1일(월요일)부터 요일을 계산하기 위해 입력한 날짜까지 지난 날짜 수를 계산한다.

// 계산된 날짜수를 7로 나눈 나머지가 0이면 일요일, ... 6이면 토요일

 

// 서기 1년 1월 1일부터 입력한 날짜의 전년도 12월 31일 까지 지난날짜를 계산한다.

// int sum = (year - 1) * 365;

// for (int i = 1; i<year; i++ ) {

// if (isLeapYear) {

// sum++;

// }

// }

int sum = (year-1)*365 + (year-1)/4 - (year-1)/100 + (year-1)/400;

 

// 전년도 12월 31일까지 지난 날짜 수에 전달까지 지난 날짜를 더한다.

int[] m = {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

m[1] = year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? 29:28;

for (int i = 1; i<month; i++) {

sum += m[i-1];

}

 

// 이번달 날짜를 더해준다

sum += day;

char[] c = {'일', '월', '화', '수', '목', '금', '토'};

// 숫자를 요일 표기로 바꿔준다.

System.out.println(year + "년 " + month + "월 " + day + "일은 " + "서기 1월 1일부터 " + sum +"일째 되는 날입니다.");

System.out.print(year + "년 " + month + "월 " + day + "일은 " + c[sum%7] + "요일입니다."); // 2022년 12월 31일은 토요일(6)

}

}

'java&eclipse 코딩 알고리즘 > 20231206' 카테고리의 다른 글

WeekdayTest2  (0) 2023.12.14
StringTest  (0) 2023.12.14
StringMethodTest  (0) 2023.12.14
SosooTest  (0) 2023.12.14
SooinsooTest  (0) 2023.12.14