C# 不含周末的月份天数到xml文件

C# 不含周末的月份天数到xml文件,c#,xml,datetime,C#,Xml,Datetime,我已经找到了为每个月的每一天创建文件的方法 像这样: 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,

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

像这样:

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);
    }
}
这些文件的名称类似于1.xml、2.xml、

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

替换:

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

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

替换:

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


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

在方法的结果中添加linq

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

...
}

这样,如果您需要在包含的日期(假日?)上施加更多条件,则可以添加另一个。其中

将linq添加到方法的结果中

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

...
}

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

中,您可以使用相同的代码,只需在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;
        }
    }
公共静态IEnumerable AllDatesInMonth(整数年,整数月)
{
int days=DateTime.DaysInMonth(年,月);

对于(int day=1;day您可以使用相同的代码,只需在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;
        }
    }
公共静态IEnumerable AllDatesInMonth(整数年,整数月)
{
int days=DateTime.DaysInMonth(年,月);

对于(int day=1;我编辑了你的标题。请参见“”,其中共识是“不,他们不应该”。我编辑了你的标题。请参见“”,其中共识是“不,他们不应该”。这将导致干溢出-你每次需要它做其他事情时都必须修改该函数?@stenportov我实际上更喜欢另一个答案,因为这样。这将导致干溢出-你每次需要它做其他事情时都必须修改该函数?@stenportov我实际上更喜欢另一个答案,因为这个。