[Unity] DateTime

2022. 10. 31. 11:22UNITY

게임에서 일일 보상과 같이 특정 시간이 지났을 경우 리셋되는 아이템들이 있는데, 이를 위해 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일로 변환해준다.