2014-09-18 1 views
-2

운전 기사가 18 세가 될 때까지 면허를 정지해야한다고 가정 해 봅시다. 내가 가지고있는 건 그들의 DOB 뿐이야. 다른 DOB가있는 많은 드라이버를 사용할 수 있기 때문에 특정 DOB에 시간을 추가 할 수 없습니다. 다음은 이미 작성된 코드 라인입니다. 그러나 이것은 내가 원하는 바가 아닌 DOB에 18 년을 추가하는 것입니다. 당신이 TimeSpan에 남아있는 시간의 양을 얻고 싶다면C# 누군가가 DOB를 기반으로 18 세가 될 때까지의 시간을 계산하는 방법

 data.EndDate = data.Driver.DateOfBirth.GetValueOrDefault().AddYears(18); 
+5

'DOB에 18 년을 추가하고 있는데, 이는 내가 원하지 않는 것입니다. 왜 안 되죠? 제게는 당신이 찾고있는 것과 정확히 같아 보입니다. –

+0

나는 당신이 빼기를 원한다고 믿는다. 18 년을 추가하지 않는다. 18을 -18로 바꾸십시오. – MirekE

+4

@MirekE : 아니요. 몹시 유용하지 않은 "태어나 기 전 18 년이 된 날짜가 무엇입니까?" –

답변

3

, 당신은 단지 두 DateTime들 뺄 수 있습니다. 당신은 아마 생년월일에 대한 기본 값을 사용하고 싶지는 않을 때문에 또한

TimeSpan timeLeft = data.Driver.DateOfBirth.Value.AddYears(18) 
    - DateTime.Now; 

, 내가 대신 GetValueOrDefault()Value을 사용하고 있습니다.

관련 문제