using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DSWeb.Common { /// /// datetime数据类型拓展 /// public static class DateTimeExtension { /// ///将一个时间转换为秒级时间戳 /// /// 时间 /// public static long ToTimeStampSeconds(this DateTime datetime) { return (long)Math.Round((datetime.ToUniversalTime() - new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)).TotalSeconds); } /// ///将一个时间转换为毫秒级时间戳 /// /// /// public static long ToTimeStampMilliSeconds(this DateTime datetime) { return (long)Math.Round((datetime.ToUniversalTime() - new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)).TotalMilliseconds); } /// /// 获取标准时间戳 秒级 /// /// /// public static long ToTimeStamp(this DateTime datetime) { return ToTimeStampSeconds(datetime); } /// /// 将时间转换为时间字符串编码 yyyyMMddHHmmssffff /// /// /// public static string ToTimeStr(this DateTime datetime) { return datetime.ToString("yyyyMMddHHmmssffff"); } /// /// 判断时间是否大于1970年的有效时间 /// /// /// public static bool IsValidTime(this DateTime dateTime) { if (dateTime.Date >= DateTime.Parse("1970-1-1")) return true; else return false; } /// /// 获时间一天中的开始时间 /// /// public static DateTime GetDayStartTime(this DateTime dateTime) { return dateTime.Date; } /// /// 获取时间一天的结束时间 /// /// /// public static DateTime GetDateEndTime(this DateTime dateTime) { return dateTime.Date.AddDays(1).AddSeconds(-1); } /// /// 获取时间周的星期一的时间 /// /// /// public static DateTime GetWeekStartTime(this DateTime dateTime) { return dateTime.GetWeekOfDayTime(1); } /// /// 获取时间周的周日 /// /// /// public static DateTime GetWeekEndTime(this DateTime dateTime) { return dateTime.GetWeekOfDayTime(7); } /// /// 获取时间周的指定周几时间 /// /// /// 周几 1 2 3 4 5 6 7 /// public static DateTime GetWeekOfDayTime(this DateTime dateTime, int Day) { if (Day < 1) Day = 1; if (Day > 7) Day = (int)dateTime.DayOfWeek; return dateTime.Subtract(new TimeSpan(dateTime.DayOfWeek - (DayOfWeek)Day, 0, 0, 0)).Date; } /// /// 获取时间月开始时间 /// /// /// public static DateTime GetMonthStartTime(this DateTime dateTime) { return new DateTime(dateTime.Year, dateTime.Month, 1).Date; } /// /// 获取一个月的结束时间 /// /// /// public static DateTime GetMonthEndTime(this DateTime dateTime) { return dateTime.GetMonthStartTime().AddMonths(1).AddDays(-1); } } }