编程乐趣:获取第一周最后一周-修改

来源:互联网 发布:linux 关 firewall 编辑:程序博客网 时间:2024/06/04 18:39
前面一篇获取当前所在周的第一天和最后一天,今天在用的时候发现一个小问题,在做一个时间对比时,当时没有考虑到这个周的第一天是这个周的一天的00点开始的。比如某一条记录,
内容:记录,时间:2013-11-04 08:00:00,

在12点时查询这条记录,并获取了这周第一天的时间是 2013-11-01 12:00:00,结果记录的时间总是比当前周第一天的时间小。

所以写代码一定要严谨啊。

现在做一下修改:第一天的时间统一从0点开始,最后一周的时间截止23:59:59
 public class DateTimeTool    {        /// <summary>        /// 获取指定日期所在周的第一天,星期天为第一天        /// </summary>        /// <param name="dateTime"></param>        /// <returns></returns>        public static DateTime GetDateTimeWeekFirstDaySun(DateTime dateTime)        {            DateTime firstWeekDay = DateTime.Now;            try            {                //得到是星期几,然后从当前日期减去相应天数                 int weeknow = Convert.ToInt32(dateTime.DayOfWeek);                int daydiff = (-1) * weeknow;                firstWeekDay = dateTime.AddDays(daydiff);                firstWeekDay = new DateTime(firstWeekDay.Year, firstWeekDay.Month, firstWeekDay.Day);            }            catch { }            return firstWeekDay;        }        /// <summary>        /// 获取指定日期所在周的第一天,星期一为第一天        /// </summary>        /// <param name="dateTime"></param>        /// <returns></returns>        public static DateTime GetDateTimeWeekFirstDayMon(DateTime dateTime)        {            DateTime firstWeekDay = DateTime.Now;            try            {                int weeknow = Convert.ToInt32(dateTime.DayOfWeek);                //星期一为第一天,weeknow等于0时,要向前推6天。                   weeknow = (weeknow == 0 ? (7 - 1) : (weeknow - 1));                int daydiff = (-1) * weeknow;                firstWeekDay = dateTime.AddDays(daydiff);                firstWeekDay = new DateTime(firstWeekDay.Year, firstWeekDay.Month, firstWeekDay.Day);            }            catch { }            return firstWeekDay;        }        /// <summary>        /// 获取指定日期所在周的最后一天,星期六为最后一天        /// </summary>        /// <param name="dateTime"></param>        /// <returns></returns>        public static DateTime GetDateTimeWeekLastDaySat(DateTime dateTime)        {            DateTime lastWeekDay = DateTime.Now;            try            {                int weeknow = Convert.ToInt32(dateTime.DayOfWeek);                int daydiff = (7 - weeknow) - 1;                lastWeekDay = dateTime.AddDays(daydiff);                lastWeekDay = new DateTime(lastWeekDay.Year, lastWeekDay.Month, lastWeekDay.Day, 23, 59, 59);            }catch { }            return lastWeekDay;        }        /// <summary>        /// 获取指定日期所在周的最后一天,星期天为最后一天        /// </summary>        /// <param name="dateTime"></param>        /// <returns></returns>        public static DateTime GetDateTimeWeekLastDaySun(DateTime dateTime)        {            DateTime lastWeekDay = DateTime.Now;            try            {                int weeknow = Convert.ToInt32(dateTime.DayOfWeek);                weeknow = (weeknow == 0 ? 7 : weeknow);                int daydiff = (7 - weeknow);                 lastWeekDay = dateTime.AddDays(daydiff);                lastWeekDay = new DateTime(lastWeekDay.Year, lastWeekDay.Month, lastWeekDay.Day, 23, 59, 59);            }            catch { }            return lastWeekDay;        }        /// <summary>        /// 获取指定日期的月份第一天        /// </summary>        /// <param name="dateTime"></param>        /// <returns></returns>        public static DateTime GetDateTimeMonthFirstDay(DateTime dateTime)        {            if (dateTime == null)            {                dateTime = DateTime.Now;            }            return new DateTime(dateTime.Year, dateTime.Month, 1);        }        /// <summary>        /// 获取指定月份最后一天        /// </summary>        /// <param name="dateTime"></param>        /// <returns></returns>        public static DateTime GetDateTimeMonthLastDay(DateTime dateTime)        {            int day = DateTime.DaysInMonth(dateTime.Year, dateTime.Month);            return new DateTime(dateTime.Year, dateTime.Month, day,23,59,59);        }    }
原创粉丝点击