每月没有周末的天数到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,…
现在我想知道的是做同样的事情,但周末(周六和周日)没有文件。
为你的方法的结果添加一个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;
}
}