본문 바로가기
프로그래밍/알고리즘 풀이

[알고리즘] 2차원 배열을 이용하여 해당 년도의 월 일을 입력하면 해당년도부터 며칠 째인지 알려주는 프로그램

by 방구석개발자 2020. 4. 12.
반응형

2차원 배열을 이용하여 해당 년도의 월 일을 입력하면 해당년도부터 며칠 째인지 알려주는 프로그램

using System; 
using System.Diagnostics; 
using System.Text; 


namespace ConsoleApp4 
{ 
    class Program 
    { 

        public static int[,] mdays =new int[,] { 
            { 31,28,31,30,31,30,31,31,30,31,30,31}, //평년 
            { 31,29,31,30,31,30,31,31,30,31,30,31} //윤년 
        }; 


        //해당 년도는 윤년인가?(윤년 true / 평년 false)
        static int isLeap(int year) 
        { 
            return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? 0 : 1; 
        } 

        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; 
        } 

        static void Main(string[] args) 
        { 
            int retry; 
            do 
            { 
                Console.WriteLine("년도를 알려주세요. : "); 
                int year = Convert.ToInt32(Console.ReadLine()); 
                Console.WriteLine("월을 알려주세요. : "); 
                int month = Convert.ToInt32(Console.ReadLine()); 
                Console.WriteLine("일을 알려주세요. : "); 
                int day = Convert.ToInt32(Console.ReadLine()); 

                Console.WriteLine("그해 " + dayofYear(year, month, day) + "일째 입니다."); 

                Console.WriteLine("한번 더할래요? : 1.예/0.아니오"); 
                string sRetry = Console.ReadLine(); 
                retry = Convert.ToInt32(sRetry); 

            } while (retry == 1); 

            ExitKey(); 

        } 
        public static void ExitKey() 
        { 
            Console.WriteLine("프로그램을 종료 하시려면 아무 키나 누르세요."); 
            Console.ReadKey(); 
        } 

    } 
}

프로그램 실행 결과

C# 으로 코딩하였습니다.

감사합니다.

반응형

댓글