首页 / 问答 / C#/.NET/.NET Core应用程序编程开发中如何获取指定日期所在周的第一天?

C#/.NET/.NET Core应用程序编程开发中如何获取指定日期所在周的第一天?

.NET C# 日期 时间 .NET Core 2.35K 次浏览
0

在C#/.NET/.NET Core应用程序编程开发中,假如给一个日期,现需要得到这个日期所在周的第一天对应的日期,比如类似如下的方法:

DateTime.Now.StartWeek(Monday);

应该如何实现呢?

回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    创建一个日期的扩展方法,如下:

    public static class DateTimeExtensions
    {
        public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek)
        {
            int diff = (7 + (dt.DayOfWeek - startOfWeek)) % 7;
            return dt.AddDays(-1 * diff).Date;
        }
    }
    

    调用示例如下:

    DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Monday);
    DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);
    
    Rector的个人主页

    Rector

    2020-05-18 回答

    • 0

      使用Fluent DateTime第三方类库,示例如下:

      var monday = DateTime.Now.Previous(DayOfWeek.Monday);
      var sunday = DateTime.Now.Previous(DayOfWeek.Sunday);
      
      Rector的个人主页

      Rector

      2020-05-18 回答

      • 0

        使用操作系统默认的每周第一天,示例如下:

        public static DateTime FirstDateInWeek(this DateTime dt)
        {
            while (dt.DayOfWeek != System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek)
                dt = dt.AddDays(-1);
            return dt;
        }
        
        Rector的个人主页

        Rector

        2020-05-18 回答

        我来回答