实现如图:若当前回访时间为 6 月 21 ,则下次回访时间为 7月21,其中如果下次回访时间为周六则提前一天,是周日则提前两天
下图为测试,一月到二月,追加一个月(AddMonths)时 ,AddMonths函数判断当前日如果大于或等于下个月的最大一天,则为最大一天
具体实现:
AddMonths 用于追加月份
AddDays 用于追加日,可为负
DayOfWeek 用于判断周几,返回的为英文
DateTime d = DateTime.Now; DateTime d2 = d.AddMonths(1); DateTime d3 = d; if(d2.DayOfWeek.ToString() == "Sunday") { d3 = d2.AddDays(Convert.ToDouble(-2)); } else if(d2.DayOfWeek.ToString() == "Saturday") { d3 = d2.AddDays(Convert.ToDouble(-1)); } else { d3 = d2; } tbJobUser_User_ReturnDate.Value = d3.ToString("yyyy-MM-dd");
小提示:
//一月、三月、五月、七月、八月、十月、十二月为31天 二月非闰年为28天,在闰年为29天,闰年指年份能被4整除的年,如2000年能被4整除,为闰年 四月、六月、九月、十一月为30天 //判断周几的算法 iWeek = (iDay + 2 * iMonth + 3 * (iMonth + 1) / 5 + iYear + iYear / 4 - iYear / 100 + iYear / 400) % 7;
···