// Admin.NET 项目的版æƒã€å•†æ ‡ã€ä¸“利和其他相关æƒåˆ©å‡å—ç›¸åº”æ³•å¾‹æ³•è§„çš„ä¿æŠ¤ã€‚ä½¿ç”¨æœ¬é¡¹ç›®åº”éµå®ˆç›¸å…³æ³•律法规和许å¯è¯çš„è¦æ±‚。 // // 本项目主è¦éµå¾ª MIT 许å¯è¯å’Œ Apache 许å¯è¯ï¼ˆç‰ˆæœ¬ 2.0)进行分å‘和使用。许å¯è¯ä½äºŽæºä»£ç æ ‘æ ¹ç›®å½•ä¸çš„ LICENSE-MIT å’Œ LICENSE-APACHE 文件。 // // ä¸å¾—利用本项目从事å±å®³å›½å®¶å®‰å…¨ã€æ‰°ä¹±ç¤¾ä¼šç§©åºã€ä¾µçŠ¯ä»–äººåˆæ³•æƒç›Šç‰æ³•å¾‹æ³•è§„ç¦æ¢çš„æ´»åЍï¼ä»»ä½•基于本项目二次开å‘è€Œäº§ç”Ÿçš„ä¸€åˆ‡æ³•å¾‹çº çº·å’Œè´£ä»»ï¼Œæˆ‘ä»¬ä¸æ‰¿æ‹…ä»»ä½•è´£ä»»ï¼ namespace Admin.NET.Core; public class DateTimeUtil { /// <summary> /// 获å–开始时间 /// </summary> /// <param name="dateTime"></param> /// <param name="days"></param> /// <returns></returns> public static DateTime GetBeginTime(DateTime? dateTime, int days = 0) { if (dateTime == DateTime.MinValue || dateTime == null) return DateTime.Now.AddDays(days); return dateTime ?? DateTime.Now; } /// <summary> /// 时间戳转本地时间-时间戳精确到秒 /// </summary> public static DateTime ToLocalTimeDateBySeconds(long unix) { return DateTimeOffset.FromUnixTimeSeconds(unix).ToLocalTime().DateTime; } /// <summary> /// 时间转时间戳Unix-时间戳精确到秒 /// </summary> public static long ToUnixTimestampBySeconds(DateTime dt) { return new DateTimeOffset(dt).ToUnixTimeSeconds(); } /// <summary> /// 时间戳转本地时间-时间戳精确到毫秒 /// </summary> public static DateTime ToLocalTimeDateByMilliseconds(long unix) { return DateTimeOffset.FromUnixTimeMilliseconds(unix).ToLocalTime().DateTime; } /// <summary> /// 时间转时间戳Unix-时间戳精确到毫秒 /// </summary> public static long ToUnixTimestampByMilliseconds(DateTime dt) { return new DateTimeOffset(dt).ToUnixTimeMilliseconds(); } /// <summary> /// 毫秒转天时分秒 /// </summary> /// <param name="ms"></param> /// <returns></returns> public static string FormatTime(long ms) { int ss = 1000; int mi = ss * 60; int hh = mi * 60; int dd = hh * 24; long day = ms / dd; long hour = (ms - day * dd) / hh; long minute = (ms - day * dd - hour * hh) / mi; long second = (ms - day * dd - hour * hh - minute * mi) / ss; long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss; string sDay = day < 10 ? "0" + day : "" + day; //天 string sHour = hour < 10 ? "0" + hour : "" + hour;//å°æ—¶ string sMinute = minute < 10 ? "0" + minute : "" + minute;//分钟 string sSecond = second < 10 ? "0" + second : "" + second;//ç§’ string sMilliSecond = milliSecond < 10 ? "0" + milliSecond : "" + milliSecond;//毫秒 sMilliSecond = milliSecond < 100 ? "0" + sMilliSecond : "" + sMilliSecond; return string.Format("{0} 天 {1} å°æ—¶ {2} 分 {3} ç§’", sDay, sHour, sMinute, sSecond); } /// <summary> /// 获å–unix时间戳 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static long GetUnixTimeStamp(DateTime dt) { return ((DateTimeOffset)dt).ToUnixTimeMilliseconds(); } /// <summary> /// èŽ·å–æ—¥æœŸå¤©çš„æœ€å°æ—¶é—´ /// </summary> /// <param name="dt"></param> /// <returns></returns> public static DateTime GetDayMinDate(DateTime dt) { return new DateTime(dt.Year, dt.Month, dt.Day, 0, 0, 0); } /// <summary> /// èŽ·å–æ—¥æœŸå¤©çš„æœ€å¤§æ—¶é—´ /// </summary> /// <param name="dt"></param> /// <returns></returns> public static DateTime GetDayMaxDate(DateTime dt) { return new DateTime(dt.Year, dt.Month, dt.Day, 23, 59, 59); } /// <summary> /// èŽ·å–æ—¥æœŸå¤©çš„æœ€å¤§æ—¶é—´ /// </summary> /// <param name="dt"></param> /// <returns></returns> public static string FormatDateTime(DateTime? dt) { if (dt == null) return string.Empty; if (dt.Value.Year == DateTime.Now.Year) return dt.Value.ToString("MM-dd HH:mm"); else return dt.Value.ToString("yyyy-MM-dd HH:mm"); } /// <summary> /// 获å–今天日期范围00:00:00 - 23:59:59 /// </summary> /// <returns></returns> public static List<DateTime> GetTodayTimeList(DateTime time) { return new List<DateTime> { Convert.ToDateTime(time.ToString("D").ToString()), Convert.ToDateTime(time.AddDays(1).ToString("D").ToString()).AddSeconds(-1) }; } /// <summary> /// èŽ·å–æ˜ŸæœŸå‡ /// </summary> /// <param name="dt"></param> /// <returns></returns> public static string GetWeekByDate(DateTime dt) { var day = new[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期å…" }; return day[Convert.ToInt32(dt.DayOfWeek.ToString("d"))]; } /// <summary> /// 获å–è¿™ä¸ªæœˆçš„ç¬¬å‡ å‘¨ /// </summary> /// <param name="daytime"></param> /// <returns></returns> public static int GetWeekNumInMonth(DateTime daytime) { int dayInMonth = daytime.Day; // 本月第一天 DateTime firstDay = daytime.AddDays(1 - daytime.Day); // æœ¬æœˆç¬¬ä¸€å¤©æ˜¯å‘¨å‡ int weekday = (int)firstDay.DayOfWeek == 0 ? 7 : (int)firstDay.DayOfWeek; // æœ¬æœˆç¬¬ä¸€å‘¨æœ‰å‡ å¤© int firstWeekEndDay = 7 - (weekday - 1); // 当剿—¥æœŸå’Œç¬¬ä¸€å‘¨ä¹‹å·® int diffday = dayInMonth - firstWeekEndDay; diffday = diffday > 0 ? diffday : 1; // 当剿˜¯ç¬¬å‡ 周,若整除7å°±å‡ä¸€å¤© return ((diffday % 7) == 0 ? (diffday / 7 - 1) : (diffday / 7)) + 1 + (dayInMonth > firstWeekEndDay ? 1 : 0); } }