[Exception] ArgumentOutOfRangeException: Year, Month, and Day parameters describe an un-representable DateTime.
Programming/C# / 2024. 2. 29. 16:00
[에러 로그]
[Exception] ArgumentOutOfRangeException: Year, Month, and Day parameters describe
an un-representable DateTime.
----
개발을 하면서 연도와 상관없이 날짜(월/일/시/분/초) 비교를 위해 임의로 현재 날짜를 9999년으로 변환하게 해놨는데..
하필 오늘이 2024년 2월 29일 윤일(閏日)이다.
2024년 2월 29일에서 연도만 9999년으로 바꾸면서 new DateTime()을 하려니 위 에러가 발생했다.
잘 돌아가나 했던 로직이 윤일(閏日)에 에러가 남..(잘못만든거..)
해당 월(Month)에 해당 일(Day)이 있는지 체크하는 함수가 있으니 아래와 같이 체크해보고 처리하던가,
if (DateTime.DaysInMonth(2024,2) == 29)
dt = new DateTime(2024, 2, 29);
아니면 다른 방식으로 처리를 해야 될 것 같다.
나의 경우는 연도를 같게 만들고 나머지를 비교하기 위해 무조건 9999년(임의 연도)으로 만들었는데..
에러가 나서 반대로 비교할 DateTime이 9999년이면 현재 연도(DateTime.Now.Year)에 맞추게 변경했다.
각자 원하는 방식으로 예외처리를 하면 될 것 같다.
반응형
'Programming > C#' 카테고리의 다른 글
[링크][C#] 양력 <-> 음력 변환 (0) | 2024.11.25 |
---|---|
[펌] Get dictionary key by value (0) | 2024.03.06 |
[링크] C# 특정 문자열 삭제, 특정 문자열 교체 Regex.Replace (0) | 2023.11.08 |
[펌] c# String.Format && string 자릿수 맞추기 (0) | 2023.09.18 |
[링크] [C#][.NET framework] Directory.GetFiles() 로 여러 확장자 필터링 하기 (0) | 2023.02.21 |