C#获取指定日期所在周、月、年的第一天和最后一天

2023-05-16

需求:给定一个日期,获取日期所在周的周一、周日,获取日期所在月的第一天和最后一天,获取所在年份的第一天和最后一天。
代码如下所示。

  		/// <summary>
        /// 获取指定日期所在周的周一
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DateTime GetWeekStart(DateTime dt)
        {
            return dt.AddDays(-((int)dt.DayOfWeek - 1));
        }

        /// <summary>
        /// 获取指定日期所在周的周日
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DateTime GetWeekEnd(DateTime dt)
        {
            return dt.AddDays(7 - (int)dt.DayOfWeek);
        }

        /// <summary>
        /// 获取指定日期所在月的第一天
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DateTime GetMonthStart(DateTime dt)
        {
            return dt.AddDays(-((int)dt.Day - 1));
        }

        /// <summary>
        /// 获取指定日期所在月的最后一天
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DateTime GetMonthEnd(DateTime dt)
        {
            return dt.AddMonths(1).AddDays(-dt.AddMonths(1).Day);
        }

        /// <summary>
        /// 获取指定日期的年初
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DateTime GetYearStart(DateTime dt)
        {
            return dt.AddDays(-((int)dt.DayOfYear - 1));
        }

        /// <summary>
        /// 获取指定日期的年末
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DateTime GetYearEnd(DateTime dt)
        {
            return dt.AddYears(1).AddDays(-dt.AddYears(1).DayOfYear);
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#获取指定日期所在周、月、年的第一天和最后一天 的相关文章

随机推荐