zoukankan      html  css  js  c++  java
  • 时间帮助类

    public class DateHelper
        {
            #region/// <summary>
            /// 获取时间所处周的第一天
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetFirstDayOfWeek(DateTime date)
            {
                //星期一为第一天  
                var weekNow = Convert.ToInt32(date.DayOfWeek);
    
                //因为是以星期一为第一天,weekNow,要向前推6天。  
                weekNow = (weekNow == 0 ? (7 - 1) : (weekNow - 1));
                var dayDiff = (-1) * weekNow;
    
                //本周第一天  
                return date.AddDays(dayDiff);
            }
    
            /// <summary>
            /// 获取时间所处周的最后一天
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetLastDayOfWeek(DateTime date)
            {
                //星期天为最后一天  
                var lastWeekDay = Convert.ToInt32(date.DayOfWeek);
                lastWeekDay = lastWeekDay == 0 ? (7 - lastWeekDay) : lastWeekDay;
                var lastWeekDiff = (7 - lastWeekDay);
    
                //本周最后一天  
               return date.AddDays(lastWeekDiff);
            }
    
            #endregion
    
            #region/// <summary>
            /// 获取时间所处月的第一天
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetFirstDayOfMonth(DateTime date)
            {
                return date.AddDays(1 - date.Day);
            }
    
            /// <summary>
            /// 获取时间所处月的最后一天
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetLastDayOfMonth(DateTime date)
            {
                return date.AddDays(1 - date.Day).AddMonths(1).AddDays(-1);
            }
    
            #endregion
    
            #region 季度
    
            /// <summary>
            /// 获取时间所处季度的第一天
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetFirstDayOfQuarter(DateTime date)
            {
                return date.AddMonths(0 - (date.Month - 1) % 3).AddDays(1 - date.Day);
            }
    
            /// <summary>
            /// 获取时间所处季度的最后一天
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetLastDayOfQuarter(DateTime date)
            {
                return date.AddMonths(0 - (date.Month - 1) % 3).AddDays(1 - date.Day).AddMonths(3).AddDays(-1);
            }
    
            #endregion
    
            #region 半年
    
            /// <summary>
            /// 获取所处时间半年的第一天(上半年或下半年)
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetFirstDayOfHalfYear(DateTime date)
            {
                if (date.Date < new DateTime(date.Year, 7, 1))
                {
                    return new DateTime(date.Year, 1, 1);
                }
                return new DateTime(date.Year, 7, 1);
            }
    
            /// <summary>
            /// 获取所处时间半年的最后一天(上半年或下半年)
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetLastDayOfHalfYear(DateTime date)
            {
                if (date.Date < new DateTime(date.Year, 7, 1))
                {
                    return new DateTime(date.Year, 7, 1).AddDays(-1);
                }
                return new DateTime(date.Year, 1, 1).AddYears(1).AddDays(-1);
            }
    
            #endregion
    
            #region/// <summary>
            /// 获取时间所处年的第一天
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetFirstDayOfYear(DateTime date)
            {
                return new DateTime(date.Year, 1, 1);
            }
    
            /// <summary>
            /// 获取时间所处年的最后一天
            /// </summary>
            /// <param name="date"></param>
            /// <returns></returns>
            public static DateTime GetLastDayOfYear(DateTime date)
            {
                return new DateTime(date.Year, 1, 1).AddYears(1).AddDays(-1);
            }
    
            #endregion
    
            #region 相差天数
    
            /// <summary>
            /// 两日期之间相差天数
            /// </summary>
            /// <param name="starTime"></param>
            /// <param name="endTime"></param>
            /// <returns></returns>
            public static int DifferDays(DateTime? starTime, DateTime? endTime)
            {
                var result = 0;
                if (starTime.HasValue && endTime.HasValue)
                {
                    return endTime.Value.Subtract(starTime.Value).Days;
                }
                return result;
            }
            #endregion
    
            #region 相差周数
    
            public static int DifferWeeks(DateTime? starTime, DateTime? endTime)
            {
                int result = 0;
                if (starTime.HasValue && endTime.HasValue)
                {
                    var lastTime = GetLastDayOfWeek(starTime.Value);
                    while (lastTime < endTime)
                    {
                        result++;
                        lastTime = lastTime.AddDays(7);
                    }
                }
                return result;
            }
    
            #endregion
    
            #region 相差月数
    
            /// <summary>
            /// 相差月数
            /// </summary>
            /// <param name="starTime"></param>
            /// <param name="endTime"></param>
            /// <returns></returns>
            public static int DifferMonths(DateTime? starTime, DateTime? endTime)
            {
                var result = 0;
                if (starTime.HasValue && endTime.HasValue)
                {
                    return (endTime.Value.Year - starTime.Value.Year) * 12 +
                           (endTime.Value.Month - starTime.Value.Month);
                }
                return result;
            }
    
            #endregion
    
            #region 相差季度
    
            /// <summary>
            /// 相差季度
            /// </summary>
            /// <param name="starTime"></param>
            /// <param name="endTime"></param>
            /// <returns></returns>
            public static int DifferQuarters(DateTime? starTime, DateTime? endTime)
            {
                var result = 0;
                if (starTime.HasValue && endTime.HasValue)
                {
                    var lastTime = GetLastDayOfQuarter(starTime.Value);
                    while (lastTime < endTime)
                    {
                        result++;
                        lastTime = lastTime.AddMonths(3);
                    }
                }
                return result;
            }
    
            #endregion
    
            #region 相差半年
    
            /// <summary>
            /// 相差半年
            /// </summary>
            /// <param name="starTime"></param>
            /// <param name="endTime"></param>
            /// <returns></returns>
            public static int DifferHalfYears(DateTime? starTime, DateTime? endTime)
            {
                var result = 0;
                if (starTime.HasValue && endTime.HasValue)
                {
                    var lastTime = GetLastDayOfHalfYear(starTime.Value);
                    while (lastTime < endTime)
                    {
                        result++;
                        lastTime = lastTime.AddMonths(6);
                    }
                }
                return result;
            }
    
            #endregion
    
            #region 相差年数
    
            /// <summary>
            /// 相差年数
            /// </summary>
            /// <param name="starTime"></param>
            /// <param name="endTime"></param>
            /// <returns></returns>
            public static int DifferYears(DateTime? starTime, DateTime? endTime)
            {
                var result = 0;
                if (starTime.HasValue && endTime.HasValue)
                {
                    return endTime.Value.Year - starTime.Value.Year;
                }
                return result;
            }
    
            #endregion
    
            #region 获取两个日期之间的所有时间集合
    
            /// <summary>
            /// 获取两个日期之间的所有时间集合
            /// </summary>
            /// <param name="beginDate"></param>
            /// <param name="endDate"></param>
            /// <returns></returns>
            public  static List<string> GetDateTimeList(DateTime beginDate, DateTime endDate)
            {
                var result = new List<string>();
                var dateTime = beginDate;
                while (endDate >= dateTime)
                {
                    var item = dateTime.ToString("yy-MM-dd");
                    result.Add(item);
                    dateTime = dateTime.AddDays(1);
                }
    
                return result;
            }
    
            #endregion
        }
  • 相关阅读:
    springboot整合mybatisplus
    在layui中使用treetable.js插件
    shiro系列9:基于前端的权限控制和基于后端的权限控制
    springboot文件上传案例
    springboot配置虚拟路径访问上传到磁盘的文件
    springboot文件下载案例
    springboot跨域的处理方式
    springboot上传文件过大的解决方案
    Django与Ajax
    Django查询数据库性能优化
  • 原文地址:https://www.cnblogs.com/xiaoxiaomini/p/14434929.html
Copyright © 2011-2022 走看看