C #에서 어제와 내일 datetime을 얻는 방법


101

나는 코드를 가지고있다:

int MonthNow = System.DateTime.Now.Month;
int YearNow = System.DateTime.Now.Year;
int DayNow = System.DateTime.Now.Day;

어제와 내일 일, 월, 연도를 C #으로 어떻게 얻을 수 있습니까?

물론 다음과 같이 작성할 수 있습니다.

DayTommorow = DayNow +1;

하지만 내일은 다른 달이나 연도가 될 수도 있습니다. 어제와 오늘을 확인할 수있는 C # 기본 제공 도구가 있습니까?


DayNow + 1또는 문제 - 1는 이것이 해당 월의 마지막 날의 첫날이면 작동하지 않는다는 것입니다. DateTime.Now.Day는 현재 날짜의 정수 표현입니다.
Gary.S

답변:


126

이 정보는 API 참조 에서 바로 찾을 수 있습니다 .

var today = DateTime.Today;
var tomorrow = today.AddDays(1);
var yesterday = today.AddDays(-1);

28
가능하면 웹 사이트 에만 링크하는 대신 링크 된 웹 사이트의 관련 부분을 게시하십시오
JMax

JMax, 물론입니다. 이 링크는 날짜를 더하거나 뺄 수있는 DateTime.AddDays 메서드 용입니다. 보다 일반적인 DateTime.Add 메서드에 비해 질문의 컨텍스트에서 사용하기가 더 쉽습니다.
Tabrez 2011

5
... 그리고 그것은 당신의 대답의 상세한 부분이 될 수 있습니다 :).
C4d

160
DateTime tomorrow = DateTime.Today.AddDays(1);
DateTime yesterday = DateTime.Today.AddDays(-1);

11
이 답변은 이름 지정이 얼마나 중요한지 증명합니다.
eomeroff 2014-04-27

17

오늘 :

DateTime.Today

내일 :

DateTime.Today.AddDays(1)

어제 :

DateTime.Today.AddDays(-1)

16

어제와 내일 00:00:00에 받으려면 다음과 같이해야합니다.

DateTime yesterday = DateTime.Today.AddDays(-1);
DateTime tomorrow = DateTime.Today.AddDays(1); // Output example: 6. 02. 2016 00:00:00

이렇게하면 다음과 같습니다.

DateTime yesterday = DateTime.Now.AddDays(-1);
DateTime tomorrow = DateTime.Now.AddDays(1); // Output example: 6. 02. 2016 18:09:23

그러면 어제 00:00:00 시간이 아니라 현재 시간에서 1 일을 뺀 값이 표시됩니다.


15

당신은 원합니다 DateTime.Today.AddDays(1).



2

트릭은 "DateTime"을 사용하여 날짜를 조작하는 것입니다. 날짜의 "최종 결과"가 필요할 때만 정수와 문자열을 사용하십시오.

예 (의사 코드) :

  1. "DateTime tomorrow = Now + 1"가져 오기

  2. 결과 날짜의 날짜, 요일, 날짜 (원하는대로)를 결정합니다.


1

어제 UTC로 "로컬"을 얻으려면.

  var now = DateTime.Now;
  var yesterday = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0, DateTimeKind.Utc).AddDays(-1);

0

특히 웹 API를 통해 날짜가 전송되는 경우 결과에 원하지 않는 시간대를 추가하지 않도록주의하십시오. 대신 UtcNow를 사용하여 시간대를 제한하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.