programing tip

DateTime에서 일 빼기

itbloger 2020. 7. 16. 19:43
반응형

DateTime에서 일 빼기


내 C # 프로그램에 다음 코드가 있습니다.

DateTime dateForButton =  DateTime.Now;  
dateForButton = dateForButton.AddDays(-1);  // ERROR: un-representable DateTime

실행할 때마다 다음 오류가 발생합니다.

더하거나 빼는 값은 표현할 수없는 DateTime이됩니다.
매개 변수 이름 : 값

이 오류 메시지는 이전에 본 적이 없으며 왜 내가보고 있는지 이해하지 못합니다. 지금까지 읽은 답변에서 추가 작업에서 -1을 사용하여 일을 뺄 수 있다고 생각합니다. 그러나 내 질문에 따르면 이것이 내가하려는 일의 경우가 아닙니다.


이 오류는 일반적으로 간격을 빼려고 DateTime.MinValue하거나 무언가를 추가 DateTime.MaxValue하려고 할 때 (또는이 최소-최대 간격 이외의 날짜를 인스턴스화하려고 할 때) 발생합니다. MinValue어딘가에 할당하지 않습니까?


DateTime dateForButton = DateTime.Now.AddDays(-1);

넌 할 수있어:

DateTime.Today.AddDays(-1)

다음 코드를 사용할 수 있습니다 :

dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));

AddDays (-1) 사용에 문제가 있습니다 .

내 솔루션은 TimeSpan 입니다.

DateTime.Now - TimeSpan.FromDays(1);

AddDays 메소드의 객체 (예 : 대상 변수)는 소스와 같을 수 없습니다.

대신에:

DateTime today = DateTime.Today;
today.AddDays(-7);

대신 이것을 시도하십시오 :

DateTime today = DateTime.Today;
DateTime sevenDaysEarlier = today.AddDays(-7);

dateTime.AddDays(-1)으로부터 언젠가 빼기하지 않습니다 dateTime참조. 원래 참조에서 하루를 빼고 새 인스턴스를 반환합니다.

DateTime dateTime = DateTime.Now;
DateTime otherDateTime = dateTime.AddDays(-1);

AddDays(-1)몇 달을 건너려고 할 때까지 사용 했습니다. 2017-01-01에서 2 일을 뺄 때 결과는 2016-00-30입니다. 월 변경을 올바르게 처리 할 수 ​​없습니다 (연도는 괜찮은 것처럼 보였습니다).

사용 date = Convert.ToDateTime(date).Subtract(TimeSpan.FromDays(2)).ToString("yyyy-mm-dd");하고 문제가 없습니다.

참고 URL : https://stackoverflow.com/questions/11151976/subtract-days-from-a-datetime

반응형