C# - 获取两个日期之间的天数

标签 c# datetime

我的案例场景是用户选择一个财政年度,比如 2015 年 1 月 1 日到 2015 年 12 月 31 日。然后他选择日期说“星期六”、“星期日”。

我想获取上述条件之间的所有日期。

我可以获得这样的日期:-

    ....
    for (var date = fromDate; date <= toDate; date = date.AddDays(1))
         temp.Add(date);        

但是如何从日期范围中只获取天数 'SATURDAY', 'SUNDAY'?

最佳答案

使用DayOfWeek属性:

 for (var date = fromDate; date <= toDate; date = date.AddDays(1))
 {
     if (date.DayOfWeek == DayOfWeek.Sunday || date.DayOfWeek == DayOfWeek.Saturday) 
            temp.Add(date);
 }

如果星期几不是静态的:

HashSet<DayOfWeek> daysOfWeek = new HashSet<DayOfWeek> { DayOfWeek.Saturday, DayOfWeek.Sunday };
List<DateTime> temp = new List<DateTime>();
for (var date = fromDate.Date; date <= toDate; date = date.AddDays(1))
    if (daysOfWeek.Contains(date.DayOfWeek))
        temp.Add(date);

关于C# - 获取两个日期之间的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174956/

相关文章:

c# - 使用类作为属性?

c# - 输入字符串的格式不正确

c# - WinRT FlipView.SelectedIndex 绑定(bind)不响应 ViewModel 中的更改

javascript - 将 javascript 日期时间转换为 php 日期时间

java - 使用 Java DateTimeFormatter 解析 PDF 日期

datetime - 在 Elm 0.19 中将纪元毫秒解码为 "DateTime"?

c# - C# 中纬度/经度值的 double 或小数

c# - 如何在 .Net WPF 应用程序中使用 Serilog 自动尾部(删除)旧日志?

.net - 为什么 DateTime.MinValue 0001-01-01T00 :00 instead of 0000-01-01T00:00?

mysql - 我需要从 mysql (2019-08-16T10 :36:03. 562908+00:00) 隐藏时间戳到 06-08-2019