자바의 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);
}
}
'자료구조' 카테고리의 다른 글
스택(Stack) (0) | 2022.07.16 |
---|---|
배열검색 (이진검색) (0) | 2022.07.15 |
배열 검색 (선형검색, 보초법) (0) | 2022.07.15 |
소수의 나열 [java] (0) | 2022.07.14 |
10진수 > 2진수~36진수 기수변환 [java] (0) | 2022.07.14 |