1 /// <summary> 2 /// 判断两个时间间隔是否是自然月 3 /// </summary> 4 /// <param name="date1"></param> 5 /// <param name="date2"></param> 6 /// <returns></returns> 7 public static bool isNaturalMonth(DateTime date1, DateTime date2) 8 { 9 int startYear = date1.Year; 10 int startMonth = date1.Month; 11 int startDay = date1.Day; 12 int endYear = date2.Year; 13 int endMonth = date2.Month; 14 int endDay = date2.Day; 15 16 if (startYear != endYear) 17 { 18 return false; 19 } 20 if (startMonth != endMonth) 21 { 22 return false; 23 } 24 25 if (startDay == 1) 26 { 27 if (endMonth == 2) 28 { 29 if (endYear % 4 == 0 && endYear % 100 != 0 || endYear % 400 == 0) 30 { 31 if (endDay == 29) 32 return true; 33 } 34 else 35 { 36 if (endDay == 28) 37 return true; 38 } 39 } 40 else 41 { 42 if (endMonth == 1 || endMonth == 3 || endMonth == 5 || endMonth == 7 || endMonth == 8 || endMonth == 10 || endMonth == 12) 43 { 44 if (endDay == 31) 45 return true; 46 } 47 else 48 { 49 if (endDay == 30) 50 return true; 51 } 52 } 53 } 54 return false; 55 56 57 }