알고리즘(종합)/Lv.1
Do it - 기본 자료구조
ch.0
2022. 11. 10. 12:28
윤년 / 평년 날짜 구하기
(배열, for문)
윤년은 4로 나눠 떨어지면서 100으로는 나눠떨이지면 안되지만 400으로 떨어지면 윤년이다.
package test;
import java.io.IOException;
import java.util.Scanner;
public class Main {
static int [][] day = {
{31,28,31,30,31, 30,31,31,30,31, 30,31},
{31,29,31,30,31, 30,31,31,30,31, 30,31},
};
static int isyear(int year) {
if(year%4==0&&year%100!=0||year%400==0) {
return 1;
}
return 0;
}
static int sumday(int year,int month) {
int sum=0;
for(int i=1; i<month; i++) {
sum+= day[isyear(year)][i];
}
return sum;
}
public static void main(String[] args) throws IOException {
int year;
int month;
int day;
int total;
int keep;
do {
Scanner sc = new Scanner(System.in);
System.out.println("년도를 입력하시오.");
year = sc.nextInt();
System.out.println("월를 입력하시오.");
month = sc.nextInt();
System.out.println("일를 입력하시오.");
day = sc.nextInt();
total = sumday(year,month)+day;
System.out.println("총경과 일수 : "+total);
System.out.println("계속 하신다면 1을 입력하세요.");
keep = sc.nextInt();
}while(keep==1);
}
}
입출력 방법만 BufferedReader 로 바꿔보자.
input 을 2013 3 13 으로...
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
System.out.println("년월일를 입력하시오. ex) 2022 3 13");
st= new StringTokenizer(br.readLine()," ");
year = Integer.parseInt(st.nextToken());
month = Integer.parseInt(st.nextToken());
day = Integer.parseInt(st.nextToken());
total = sumday(year,month)+day;
System.out.println("총경과 일수 : "+total);
.