[C#] DateTime
2022. 10. 31. 11:22ㆍSTUDY/C#
728x90
반응형
게임에서 일일 보상과 같이 특정 시간이 지났을 경우 리셋되는 아이템들이 있는데, 이를 위해 reset time을 지정해둔다. (몇시에 초기화 될건지)
var addDay = serverTime < ResetTime ? 0 : 1;
var resetTime = new DateTime(serverTime.Year, serverTime.Month, serverTime.Day + addDay);
하루가 지난 날짜를 확인하기 위해 addDay를 추가하여 + 해주는 것을 알 수 있다. 하지만 이렇게 직접 넣게되면 문제가 발생한다. 작성일인 10월 31일의 경우 +1일을 하면 32일이 되며 에러가 발생한다.
따라서 직접적으로 넣기보단 다음과 같은 방법이 좋다.
var addDay = serverTime < ResetTime ? 0 : 1;
var resetTime = new DateTime(serverTime.Year, serverTime.Month, serverTime.Day);
resetTime = resetTime.AddDays(addDay);
AddDays() 함수를 사용하면 위와 같은 경우가 발생할 경우 자동으로 11월 1일로 변환해준다.
728x90
반응형
'STUDY > C#' 카테고리의 다른 글
interface는 인스턴스는 못 만들지만 참조는 만들 수 있다? (1) | 2024.10.03 |
---|---|
[C#] List.Clear() vs List = null (0) | 2023.01.30 |
[C#] for문에서의 Action()과 클로저(closure)의 개념 (0) | 2022.10.29 |
시작하세요 C# 9.0 프로그래밍 (0) | 2022.07.06 |
C# 해시테이블 vs 딕셔너리 [hashtable vs dictionary] (0) | 2022.07.04 |