2011-03-03 9 views
9

나는 두 가지 날짜를 2011 년 3 월 3 일과 같은 두 날짜로 정하고, 2011 년 3 월 9 일자로 다시 게시합니다. 나는 두번이나 벌금을 찾아서 returndate에서 양보를 빼고 싶다. 어떻게 양분을 늘릴 수 있니?어떻게 날짜를 늘릴 수 있습니까?

+3

mydate.AddDays (1); 기한을 하루로 늘리십시오 ... –

+5

호기심에서 벗어나, Visual Studio의 일부 버전을 사용하고 있습니까? 그렇다면 상황에 맞는 도움말이 문제를 신속하게 해결할 수있는 것처럼 보입니다. 처음에는 그런 식으로는 보이지 않지만 도움말을 읽는 것은 개발자의 개선주기의 큰 부분이며 도움말을 읽는 방법은 연습해야하는 기술입니다. –

답변

19

다음 코드는 당신을 도울 수 있습니다 returnDate, DUEDATE 가정

var dueDate = new DateTime(2011, 3, 3); 

//if you want to increment six days 
var dueDatePlus6Days = dueDate.AddDays(6); 

//if you want to increment six months 
var dueDatePlus6Months = dueDate.AddMonths(6); 

var daysDiff1 = (dueDatePlus6Days - dueDate).TotalDays; //gives 6 
var daysDiff2 = (dueDatePlus6Months - dueDate).TotalDays; //gives 184 
1

는 날짜 시간 개체 :

double extraDays = (returnDate - dueDate).TotalDays; 
1

이 당신이

DateTime dt_duedate = DateTime.Now; 
DateTime dt_returndate = DateTime.Now.AddDays(2); 
System.TimeSpan diffResult = dt_returndate.Subtract(dt_duedate); 
1

논리적 솔루션으로 보일 것입니다 도움이 될 수있다 다른 답변과 마찬가지로 AddDays 메소드가 될 수 있습니다.

그러나 일반적으로 통화 또는 날짜 값으로 작업 할 때 부동 소수점 (즉, 이중)을 사용하지 않습니다.

DateTime에는 시간 구성 요소가 포함되어 있으며 AddDays는 인수로 두 부분을 취합니다 (분수 부분은 시간이 됨). 따라서이 메서드는 사용하지 않는 경향이 있습니다.

대신, 나는이 너무 약간 빠른 실행으로한다

dueDatePlusOne = dueDate.AddTicks(TimeSpan.TicksPerDay); 

사용합니다. 그것은 오늘날의 하드웨어에서는 여전히 중요하지 않지만, 1 MHz 클럭 속도의 < 마이크로 프로세서와 1970 년대의 PDP-8과 -11과 같은 것들을 코딩하기 시작했습니다. 일부 습관은 결코 죽지 않습니다.)

+0

AddTicks()도 장점이 하나 더 있습니다. AddDays()가 자정까지만 틱을 추가하므로 AddTays()는 시간을 그대로 유지하는 반면 AddDays()는 00:00:00 – RaSor

+0

나는 믿기가 어려웠 기 때문에 이것을 시도했지만 AddDays (1.0)는 24 시간을 추가합니다. Visual Studio에서 VB 프로젝트의 직접 실행 창 :? (# 11/22/2016 01:02:03 #). AddDays (1.0) - 결과 : # 11/23/2016 01:02:03 AM #. Now.AddDays (1.0)와 동일하게 시간이 유지됩니다. –

관련 문제