ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • chapter2) 그 해의 남은 일 수 구하기
    PS/etc 2020. 7. 9. 21:11
    // 그 해의 남은 일수 구하기
    public class Q9 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int retry;
    
            System.out.println("그 해 남 일수를 구합니다");
    
            do {
                System.out.print("년 : ");
                int year = scanner.nextInt();
                System.out.print("월 : ");
                int month = scanner.nextInt();
                System.out.print("일 : ");
                int day = scanner.nextInt();
    
                System.out.printf("남은 일수는 %d일입니다.\n", remainDayOfYear(year, month, day));
    
                System.out.print("한 번 더 할까요? (1.예 / 0.아니요) : ");
                retry = scanner.nextInt();
            } while (retry == 1);
        }
    
        static int[][] mdays = {
                { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, // 평년 0
                { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, // 윤년 1 [1][11]
        };
    
        // 윤년 1 , 평년 0
        static int isLeap(int year) {
            return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? 1 : 0;
        }
    
        // days에서 지금까지의 날을 빼면 남은 일수
        static int remainDayOfYear(int y, int m, int d) {
            int days = ( isLeap(y) == 1 ? 366 : 365 ) - d;
    
            for (int i = 0; i < m-1; i++) {
                days -= mdays[isLeap(y)][i];
            }
    
            return days;
        }
    }
    

    (1)

    	// 서기 y년 m월 d일의 연내의 남은 일 수를 구합니다.
    	static int leftDayOfYear(int y, int m, int d) {
    		int days = d; // 일수
    
    		for (int i = 1; i < m; i++) // 1월~(m-1)월의 일 수를 더함
    			days += mdays[isLeap(y)][i - 1];
    		return 365 + isLeap(y) - days;
    	}​

    (2)

     

    - 윤년일때와 평년일때를 구분한뒤에 남은 일 수 빼기

    - 답안과 유사하게 풀이한듯

     

     

     

    ※참조
    Do it! 자료구조와 함께 배우는 알고리즘 입문

    'PS > etc' 카테고리의 다른 글

    우테코 3기 코테 후기  (0) 2020.11.07
    chapter3-Q3) 배열에서의 검색  (0) 2020.07.13
    chapter2) 그 해의 경과 일 수 구하기  (0) 2020.07.09
    chapter2) 소수 구하기  (0) 2020.07.09
    chapter2) 10진수 변환  (0) 2020.07.08
킹수빈닷컴