/// <summary> /// 时间通用类 /// </summary> public class DateTimeGeneral { /// <summary> /// 获取unix时间 /// </summary> /// <returns></returns> public static int GetUnixTime() { TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToInt32(ts.TotalSeconds); } /// <summary> /// 获取unix时间 /// </summary> /// <param name="t"></param> /// <returns></returns> public static int GetUnixTime(DateTime t) { TimeSpan ts = t - new DateTime(1970, 1, 1, 0, 0, 0, 0); return Convert.ToInt32(ts.TotalSeconds); } public static DateTime DateIntToDateTime(int dateInt) { try { return DateTime.ParseExact(dateInt.ToString(), "yyyyMMdd", System.Globalization.DateTimeFormatInfo.CurrentInfo); } catch { return DateTime.Now; } } /// <summary> /// 根据按日,按周,按月等方式获取相关的名字 /// </summary> /// <param name="dt"></param> /// <param name="dateMode"></param> /// <returns></returns> public static string GetCategoriesName(DateTime dt, Enums.ReportChartsDateModeEnum dateMode) { string r = ""; switch (dateMode) { case Enums.ReportChartsDateModeEnum.ForDay: r = dt.ToString("yyyy-MM-dd"); break; case Enums.ReportChartsDateModeEnum.ForWeek: //计算日期是第几周: int weekOfYear = WeekOfYear(dt); r = "第" + weekOfYear + "周"; break; case Enums.ReportChartsDateModeEnum.ForMonth: r = dt.Month + "月"; break; default: r = dt.ToString("yyyy-MM-dd"); break; } return r; } /// <summary> /// 获取一年中的第几周 /// </summary> /// <param name="dt"></param> /// <returns></returns> public static int WeekOfYear(DateTime dt) { GregorianCalendar gc = new GregorianCalendar(GregorianCalendarTypes.Localized); int weekOfYear = gc.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Monday); return weekOfYear; } }