获取当月的星期一到星期六

2024-03-25

在一个月内,我想知道当月的周一到周六,例如:2011 年 10 月有

3-oct-2011 to 8-oct-2011,
10-OCt-11 to 15-Oct-11, 
17-Oct-11 to 22-oct-2011,
24-Oct-2011 to 29-Oct-2011 

所有这些天的顺序 所有这些天,例如 2011 年 10 月 3 日、2011 年 10 月 4 日 ....11 月 29 日等都需要采用数组格式或数据表。


var today = DateTime.Today;
var daysInMonth = DateTime.DaysInMonth(today.Year, today.Month);

var dates = Enumerable.Range(1, daysInMonth)
                            .Select(n => new DateTime(today.Year, today.Month, n))
                            .Where(date => date.DayOfWeek != DayOfWeek.Sunday)
                            .ToArray();

这将查看当前月份的天数,为每个天数创建一个 DateTime 对象,然后仅将那些不是星期日的日期作为数组返回。

var today = DateTime.Today;
var daysInMonth = DateTime.DaysInMonth(today.Year, today.Month);

var dates = Enumerable.Range(1, daysInMonth)
                            .Select(n => new DateTime(today.Year, today.Month, n))
                            .Where(date => date.DayOfWeek != DayOfWeek.Sunday)
                            .SkipWhile(date => date.DayOfWeek != DayOfWeek.Monday)
                            .TakeWhile(date => date.DayOfWeek != DayOfWeek.Monday || (date.DayOfWeek == DayOfWeek.Monday && daysInMonth - date.Day > 7))
                            .ToArray();

这将执行相同的操作,除了删除任何不在当月的星期一 -> 星期六范围。 (一周从上个月开始,或在下个月结束)。

Edit:

这是一个 .NET 2 解决方案,它将执行与我之前发布的 LINQ 解决方案相同的操作。

        DateTime today = DateTime.Today;
        int daysInMonth = DateTime.DaysInMonth(today.Year, today.Month);

        List<DateTime> dates = new List<DateTime>();

        bool foundFirst = false;

        for (int n = 1; n <= daysInMonth; n++)
        {
            var date = new DateTime(today.Year, today.Month, n);

            // Skip untill we find the first Monday of the month.
            if (date.DayOfWeek != DayOfWeek.Monday && !foundFirst)
                continue;

            foundFirst = true;

            // Add all days except Sundays. 
            if (date.DayOfWeek != DayOfWeek.Sunday)
                dates.Add(date);

            int remainingDays = daysInMonth - n;

            // Verify that there are enough days left in this month to add all days upto the next Saturday.
            if (date.DayOfWeek == DayOfWeek.Saturday && remainingDays < 7)
                break;
        }

        DateTime[] dateArray = dates.ToArray();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取当月的星期一到星期六 的相关文章

随机推荐

  • 如何在 Django 中验证电子邮件地址? [复制]

    这个问题在这里已经有答案了 我编写了一个用于将电子邮件添加到时事通讯库的函数 在我添加检查发送电子邮件的有效性之前 它一直运行得很好 现在每次我都会收到 错误的电子邮件 回复 有人能看到这里有任何错误吗 使用的正则表达式是 b w w w
  • 在 Pandas DataFrame 中拆分列列表

    我正在寻找解决以下问题的好方法 我当前的修复不是特别干净 我希望从您的见解中学习 假设我有一个 Panda DataFrame 其条目如下所示 gt gt gt df pd DataFrame index 1 2 3 columns Col
  • 两个3D点云变换矩阵

    我试图猜测两个 3D 点云之间的刚性变换矩阵是哪个 这两个点云是 来自 kinect 的关键点 kinect keypoints 来自 3D 对象 盒子 的关键点 object keypoints 我尝试过两种选择 1 实现寻找刚性变换的算
  • 为什么 PyPy 翻译这么慢?

    将 pypy 实现转换为 c 文件并在具有 2G mem 和 Intel Core2 2GHz CPU 的现代笔记本电脑上构建 pypy c 需要几个小时 我知道这是一个 CPU 密集型任务 但是有必要这么慢吗 有没有机会或者空间来减少计算
  • Rails 3 时区错误

    我在 Rails 3 beta 中的时区支持方面遇到了困难 我想知道这是否是一个错误 或者我是否做错了什么 他就是问题所在 gt Time zone Madrid it is GMT 2 gt Madrid gt c Comment new
  • 如何测试一个对象是否是一个可以接受 jQuery 中的 .each() 的集合?

    如何测试一个对象是否是一个可以接受 jQuery 中的 each 的集合 提前致谢 试长度 if my class length gt 1 http jsfiddle net AlienWebguy QhFDN http jsfiddle
  • WOPI 主机未呼叫

    我想知道为什么我的 WOPI 主机没有被呼叫 我通过类似于以下内容的 HTML 页面启动我的主机 https github com Microsoft Office Online Test Tools and Documentation b
  • warpPerspective和perspectiveTransform有什么区别?

    我使用了四组点来获得透视变换矩阵 然后使用warpPerspective变换矩阵A到矩阵B Mat A 中的点 a 我想在 mat B 中获得新点的位置 但是warpPerspective不能那样做 同时perspectiveTransfo
  • 使用Maven安装Bower组件并全局安装Bower

    我使用 NPM 在全球范围内安装了 Bower 在我的 Maven 项目中 我有一个 Bower json 文件 我使用 exec maven plugin 在构建时安装 Bower 组件 但是它失败了 因为它 无法在目录中运行程序 bow
  • 如何在子类中键入注释重写的方法?

    假设我已经有一个带有类型注释的方法 class Shape def area self gt float raise NotImplementedError 然后我将对其进行多次子类化 class Circle def area self
  • Azure 服务总线主题订阅的锁定持续时间重要性

    我一直在研究服务总线队列和主题的锁定持续时间和更新锁定机制 然而 目前尚不清楚锁定持续时间对于主题订阅到底意味着什么 例如 如果我有一个主题 GameScoreUpdate 并且它有多个订阅者 因此 此主题的任何消息都将传递给所有订阅者 现
  • Redmine vs Chiliproject [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在从实验性安装切换Redmine http www redmine org以供公司广泛使用 我们确实使用了一些我们必须使用的插件 例如 re
  • 安装了邪恶的Emacs。我该如何开始呢?

    出于好奇 我想尝试一下 emacs evil 这是我到目前为止所做的 在 Windows 7 上安装 emacs 24 进展顺利 创建了一个 emacs 文件C Users name AppData Roaming emacs d 结束的地
  • 使用 CSP + localStorage 保护单页应用程序免受 CSRF 和 XSS 的影响

    我有一个单页应用程序 包含敏感内容 并且需要保护 这个问题专门针对 XSS 和 CSRF 攻击 解释 很多地方都提出了建议 例如here http michael coates blogspot ca 2010 07 html5 local
  • 如何在 setup.py 中将 whl 文件列为依赖项

    注意 我对 python 很陌生 我来自 gradle maven 世界 我读过这个博客 https underyx me 2015 11 23 adding an unreleased commit as a dependency htt
  • 使用 Spring 配置文件设置系统属性

    配置 Spring 2 5 Junit 4 Log4jlog4j 文件位置是从系统属性指定的 log location 在运行时 使用 D java 选项设置系统属性 一切都很好 问题 我需要什么 在单元测试时 未设置系统属性 且未解析文件
  • SwiftUI 中单击按钮时的 NavigationView 和 NavigationLink?

    我试图从登录视图推送到详细视图 但无法成功 甚至导航栏也没有显示在登录视图中 如何在 SwiftUI 中按下按钮单击 如何在按钮单击时使用 NavigationLink var body some View NavigationView V
  • 领域驱动设计和安全

    这与此相关question https stackoverflow com questions 3006808 security implementation in domain driven design这似乎是不久前问过的 项目中的安全
  • Swift - 防止 UIViewController 中的返回事件

    我有一个关于取消 UIViewController 中后退按钮触发的后退事件的问题 在 Objective C 中有以下内容扩大 https github com onegray UIViewController BackButtonHan
  • 获取当月的星期一到星期六

    在一个月内 我想知道当月的周一到周六 例如 2011 年 10 月有 3 oct 2011 to 8 oct 2011 10 OCt 11 to 15 Oct 11 17 Oct 11 to 22 oct 2011 24 Oct 2011