자료구조
한 해의 경과일수 구하기 [java]
땅콩콩
2022. 7. 14. 23:40
자바의 2차원 배열을 이용하여 한 해의 경과일수를 구하는 코드이다.
평년과 윤년을 2차원배열에 담아 사용했다.
import java.util.*;
public class Main {
static int[][] mdays = {
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, //평년의 일수
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, //윤년의 일수
};
//year년은 윤년인가 평년인가? (윤년이면 1, 평년이면 0)
static int isLeap(int year){
return (year%4==0 && year%100!=0 || year%400==0) ? 1 : 0;
}
//y년 m월 d일의 그 해 경과 일 수를 구한다.
static int dayOfYear(int y, int m, int d){
int days = d;
for (int i = 1; i < m; i++) {
days += mdays[isLeap(y)][i-1];
}
return days;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int retry; //다시할지 여부결정
do{
System.out.print("년: ");
int year = scanner.nextInt();
System.out.print("월: ");
int month = scanner.nextInt();
System.out.print("일: ");
int day = scanner.nextInt();
System.out.println("그 해 "+dayOfYear(year, month, day)+"일째입니다.");
System.out.print("한번더? (1.예, 2.아니오)");
retry = scanner.nextInt();
}while (retry==1);
}
}