每月没有周末的天数到xml文件

本文关键字:xml 文件 周末 | 更新日期: 2023-09-27 18:08:48

我已经找到了为每个月的每一天创建文件的方法。

:

public static IEnumerable<DateTime> AllDatesInMonth(int year, int month)
{
    int days = DateTime.DaysInMonth(year, month);
    for (int day = 1; day <= days; day++)
    {
        yield return new DateTime(year, month, day);
    }
}

然后这样命名:

foreach (DateTime day in AllDatesInMonth(DateTime.Now.Year, DateTime.Now.Month))
{
   //Blablabla
}

文件命名为1.xml,2.xml,…

现在我想知道的是做同样的事情,但周末(周六和周日)没有文件。

每月没有周末的天数到xml文件

为你的方法的结果添加一个linq

foreach (DateTime weekDay in AllDatesInMonth(...).Where(d=>d.DayOfWeek!= DayOfWeek.Saturday && d.DayOfWeek!=DayOfWEek.Sunday)){
...
}

这样,如果您需要对包含的日期(假日?)施加更多条件,那么您可以添加另一个。where

replace:

yield return new DateTime(year, month, day);

:

DateTime dt = new DateTime(year, month, day);
if(dt.DayOfWeek != DayOfWeek.Saturday && dt.DayOfWeek != DayOfWeek.Sunday)
    yield return dt;

当然,该方法必须重命名为AllWeekDaysInMonth,因为这会改变其意图。其实我更喜欢另一个答案

您可以使用相同的代码,只是在where循环中添加一个星期检查:

public static IEnumerable<DateTime> AllDatesInMonth(int year, int month)
        {
        int days = DateTime.DaysInMonth(year, month);
        for (int day = 1; day <= days; day++)
        {
            var dateToTest = new DateTime(year, month, day);
            if (dateToTest.DayOfWeek == DayOfWeek.Saturday || dateToTest.DayOfWeek == DayOfWeek.Sunday) continue;
            yield return dateToTest;
        }
    }