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我实际上更喜欢另一个答案,因为这个。