수식은 receivedDate의 첫 번째 달과 dueDate의 달 중 첫 번째 달 사이의 개월 수를 계산합니다. TimeSpan의 대부분의 시간 요소가 TotalXXX로 표시되기 때문에 TotalMonths와 TotalYears를 생략 한 것이 이상하게 보입니다.
월별로 고정 된 일수가 없기 때문에 부분 나머지를 표현하는 방법에서 가장 의미가있는 것이 무엇인지 알기가 어렵다고 생각합니다.
내 공식이 ...
int nMonthDiff_FirstToFirst = DateTime.Now.Month - testDate.Month + ((DateTime.Now.Year - testDate.Year)* 12);
double dMonthDiff = (double)nMonthDiff_FirstToFirst + (DateTime.Now - testDate.AddMonths(nMonthDiff_FirstToFirst)).TotalDays/(double)DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
그래서 난 당신이 (달의 첫번째에 첫번째 달의)처럼 기본적으로 한 달 차이를 받고 뭘하는지는 그때에 내 testDate 프로젝트입니다 달 차이로 미래. 그런 다음 TimeSpan을 사용하여 TotalDays를 얻은 다음 그 달의 일 수로 나눕니다. 따라서 저는 그 달의 남은 날에 대한 분수 부분을 나타냅니다.
그래서 2012 년 5 월 5 일 -> 2012 년 6 월 3 일이되면 1 개월이 지나지 않은 경우 수식이 월별로 1을 반환합니다. 내 수식에서 투영 된 날짜의 TotalDays는 음의 분수 일 수를 산출하고 '첫 번째에서 첫 번째'달 차이에 더해질 때 필요에 따라이를 가져옵니다.
출처
2012-05-22 16:07:42
AJB
'낙관적 인/비관적 인'것을 이해하지 못합니다. 두 날짜 사이의 개월 수는 '두 날짜 사이에 하나 이상의 날짜가있는 달 수'로 정의됩니까? 어떤 경우에는 단 하나의 정답이 없을 것입니다. – mackenir
정말 어떻게 부분 개월을 볼 수 있습니다. 하나의 경우에는 부분 달이 무시되고 다른 달은 전체 달과 같이 계산됩니다. –