[C#] 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));


답변

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

DateTime dateTime = DateTime.Now;
DateTime otherDateTime = dateTime.AddDays(-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);