| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace CallCenter.Utility.Time
- {
- public class DateTools
- {
- /// <summary>
- /// 得到本周第一天(以星期天为第一天)
- /// </summary>
- /// <param name="datetime"></param>
- /// <returns></returns>
- public static DateTime GetWeekFirstDaySun(DateTime datetime)
- {
- //星期天为第一天
- int weeknow = Convert.ToInt32(datetime.DayOfWeek);
- int daydiff = (-1) * weeknow;
- //本周第一天
- string FirstDay = datetime.AddDays(daydiff).ToString("yyyy-MM-dd");
- return Convert.ToDateTime(FirstDay);
- }
- /// <summary>
- /// 得到本周第一天(以星期一为第一天)
- /// </summary>
- /// <param name="datetime"></param>
- /// <returns></returns>
- public static DateTime GetWeekFirstDayMon(DateTime datetime)
- {
- //星期一为第一天
- int weeknow = Convert.ToInt32(datetime.DayOfWeek);
- //因为是以星期一为第一天,所以要判断weeknow等于0时,要向前推6天。
- weeknow = (weeknow == 0 ? (7 - 1) : (weeknow - 1));
- int daydiff = (-1) * weeknow;
- //本周第一天
- string FirstDay = datetime.AddDays(daydiff).ToString("yyyy-MM-dd");
- return Convert.ToDateTime(FirstDay);
- }
- /// <summary>
- /// 得到本周最后一天(以星期六为最后一天)
- /// </summary>
- /// <param name="datetime"></param>
- /// <returns></returns>
- public static DateTime GetWeekLastDaySat(DateTime datetime)
- {
- //星期六为最后一天
- int weeknow = Convert.ToInt32(datetime.DayOfWeek);
- int daydiff = (7 - weeknow) - 1;
- //本周最后一天
- string LastDay = datetime.AddDays(daydiff).ToString("yyyy-MM-dd");
- return Convert.ToDateTime(LastDay);
- }
- /// <summary>
- /// 得到本周最后一天(以星期天为最后一天)
- /// </summary>
- /// <param name="datetime"></param>
- /// <returns></returns>
- public static DateTime GetWeekLastDaySun(DateTime datetime)
- {
- //星期天为最后一天
- int weeknow = Convert.ToInt32(datetime.DayOfWeek);
- weeknow = (weeknow == 0 ? 7 : weeknow);
- int daydiff = (7 - weeknow);
- //本周最后一天
- string LastDay = datetime.AddDays(daydiff).ToString("yyyy-MM-dd");
- return Convert.ToDateTime(LastDay);
- }
- /// <summary>
- /// 取得某月的第一天
- /// </summary>
- /// <param name="datetime">要取得月份第一天的时间</param>
- /// <returns></returns>
- public static DateTime FirstDayOfMonth(DateTime datetime)
- {
- return datetime.AddDays(1 - datetime.Day);
- }
- /// <summary>
- /// 取得某月的最后一天
- /// </summary>
- /// <param name="datetime">要取得月份最后一天的时间</param>
- /// <returns></returns>
- public static DateTime LastDayOfMonth(DateTime datetime)
- {
- return datetime.AddDays(1 - datetime.Day).AddMonths(1).AddDays(-1);
- }
- /// <summary>
- /// 取得上个月第一天
- /// </summary>
- /// <param name="datetime">要取得上个月第一天的当前时间</param>
- /// <returns></returns>
- public static DateTime FirstDayOfPreviousMonth(DateTime datetime)
- {
- return datetime.AddDays(1 - datetime.Day).AddMonths(-1);
- }
- /// <summary>
- /// 取得上个月的最后一天
- /// </summary>
- /// <param name="datetime">要取得上个月最后一天的当前时间</param>
- /// <returns></returns>
- public static DateTime LastDayOfPrdviousMonth(DateTime datetime)
- {
- return datetime.AddDays(1 - datetime.Day).AddDays(-1);
- }
- /// <summary>
- /// 获取当天第一秒的时间
- /// </summary>
- /// <param name="datetime"></param>
- /// <returns></returns>
- public static DateTime FirstSecondOfOneDay(DateTime datetime)
- {
- return datetime.Date.AddSeconds(1);
- }
- /// <summary>
- /// 获取当天最后一秒的时间
- /// </summary>
- /// <param name="datetime"></param>
- /// <returns></returns>
- public static DateTime LastSecondOfOneDay(DateTime datetime)
- {
- return datetime.Date.AddDays(1).AddSeconds(-1);
- }
- }
- }
|