//# __________ PROTOCOL :: MISC __________ #// /** * Determine the difference between two dates. The resultant * array contains three elements { years, months, days }. */ public static int[] Difference(JwDate fromDate, JwDate toDate) { if ( fromDate.GetOrdinal() >= toDate.GetOrdinal() ) return new int[] { 0, 0, 0 }; int fromYear = fromDate.GetYear(); int fromMonth = fromDate.GetMonth(); int fromDay = fromDate.GetDay(); int toYear = toDate.GetYear(); int toMonth = toDate.GetMonth(); int toDay = toDate.GetDay(); int diffYears = toYear - fromYear; int diffMonths = toMonth - fromMonth; int diffDays = toDay - fromDay; if ( diffDays < 0 ) { diffDays += GetDaysInYearMonth(fromYear, fromMonth); diffMonths--; } if ( diffMonths < 0 ) { diffMonths += 12; diffYears--; } if ( fromYear < 0 && toYear > 0 ) diffYears--; if ( diffYears < 0 ) { diffYears = 0; diffMonths = 0; diffDays = 0; } return new int[] {diffYears, diffMonths, diffDays}; }
public JwDuration Difference(JwDate d) { int a = GetOrdinal(); int b = d.GetOrdinal(); int c = Math.Abs(a-b); JwDuration e = new JwDuration(); e.AddDays(c); return e; }