为了账号安全,请及时绑定邮箱和手机立即绑定

获取一个月的星期六

获取一个月的星期六

繁星coding 2021-11-21 09:59:14
我试图获得每个月星期六的天数。例如,这个月(八月)应该返回:4, 11, 18, 28int year = 2018;int month = DateTime.Now.Month;DateTime myDT = new DateTime(year, month, 1, new GregorianCalendar());Calendar myCal = CultureInfo.InvariantCulture.Calendar;while (myDT.Month == month){    var day = myCal.GetDayOfWeek(myDT);    if (day == DayOfWeek.Saturday || day == DayOfWeek.Friday)        Debug.WriteLine(myCal.GetDayOfMonth(myDT));    myDT.AddDays(1);}单击执行代码的按钮后,我的 UI 将被冻结,不会返回任何错误。这让我相信它出于某种原因仍在循环中。
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

你没有分配它,所以它可能处于一个永恒的循环中:

取而代之的是:

myDT.AddDays(1);

做这个:

myDT = myDT.AddDays(1);


查看完整回答
反对 回复 2021-11-21
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

尝试这个:


    const int year = 2018;

    int month = DateTime.Now.Month;


    Calendar myCal = CultureInfo.InvariantCulture.Calendar;

    DayOfWeek[] accepted = new [] { DayOfWeek.Saturday, DayOfWeek.Friday };


    IEnumerable<DateTime> dateTimes = Enumerable.Range(1, DateTime.DaysInMonth(year, month)) 

        .Select(day => new DateTime(year, month, day))

        .Where(d => accepted.Contains(myCal.GetDayOfWeek(d)));


查看完整回答
反对 回复 2021-11-21
  • 2 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信