더북(TheBook)

1부터 8760까지 정수에 해당하는 날짜를 반환하는 함수

DateTime 구조체의 AddHours() 같은 메서드를 사용하면 다음 유형을 구할 때 편리합니다.

일반적으로 1년은 365일 8760시간입니다. 1년을 시간으로 환산하면 1부터 8760까지로 표현할 수 있습니다. 1은 20XX년 1월 1일 0시고, 8760은 20XX년 12월 31일 23시입니다. 다음과 같은 기능을 하는 함수를 예제로 만들어 보겠습니다.

f(1) => 2019년 1월 1일 0시

f(8760) => 2019년 12월 31일 23시

f(x) => 해당 숫자에 맞는 일시

 

다음 내용을 입력한 후 실행해 보세요.

1~8760 정수에 해당하는 날짜 반환: GetDateTimeFromYearlyHour.cs

using System;

class GetDateTimeFromYearlyHour
{
    static void Main()
    {
        Console.WriteLine(GetDateTimeFromYearlyHourNumber(1));
        Console.WriteLine(GetDateTimeFromYearlyHourNumber(8760/2));
        Console.WriteLine(GetDateTimeFromYearlyHourNumber(8760));
    }

    static DateTime GetDateTimeFromYearlyHourNumber(int number)
    {
        return (new DateTime(2019, 1, 1, 0, 0, 0)).AddHours(--number);
    }
}

실행 결과

2019-01-01 오전 12:00:00
2019-07-02 오전 11:00:00
2019-12-31 오후 11:00:00

DateTime 구조체의 AddHours() 메서드는 현재 시간에 시간 값을 더한 후 다시 그 값을 돌려줍니다. 이것으로 1월 1일 0시부터 12월 31일 23시까지의 시간을 1부터 8760에 해당하는 시간 정보로 변환해 알려 줍니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.