C# ------ 实现下个月若是周六则提前一天,是周日则提前两天(DayOfWeek )

实现如图:若当前回访时间为  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;

 

···

 

posted on 2021-06-22 09:22  obge  阅读(122)  评论(0编辑  收藏  举报