时间处理的相关类"/>
关于时间处理的相关类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace InterfaceBll {public class DatetimeHelper{/// <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 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="month">月份</param>/// <returns></returns>public static int GetSeason(int month){if (month < 4)return 1;else if (month >= 4 && month < 7)return 2;else if (month >= 7 && month < 10)return 3;elsereturn 4;}/// <summary>/// 获得季度名称。/// </summary>/// <param name="month">月份</param>/// <returns></returns>public static string GetSeasonName(int month){if (month < 4)return "一季度";else if (month >= 4 && month < 7)return "二季度";else if (month >= 7 && month < 10)return "三季度";elsereturn "四季度";}/// <summary>/// 根据月份获取本月分所在季节的首月及末月/// </summary>/// <param name="month">当前月份</param>/// <param name="bMonth">首月</param>/// <param name="eMonth">末月</param>/// <returns>当前月份所属的季度</returns>public static string GetSeasonMonth(string month, ref string bMonth, ref string eMonth){string season = "";switch (month){case "01":case "02":case "03":bMonth = "01";eMonth = "03";season = "1";break;case "04":case "05":case "06":bMonth = "04";eMonth = "06";season = "2";break;case "07":case "08":case "09":bMonth = "07";eMonth = "09";season = "3";break;case "10":case "11":case "12":bMonth = "10";eMonth = "12";season = "4";break;default:break;}return season;}/// <summary>/// 获取该年中是第几周/// </summary>/// <param name="day">日期</param>/// <returns></returns>public static int WeekOfYear(DateTime day){int weeknum;DateTime fDt = DateTime.Parse(day.Year.ToString() + "-01-01");int k = Convert.ToInt32(fDt.DayOfWeek);//得到该年的第一天是周几 if (k == 0){k = 7;}int l = Convert.ToInt32(day.DayOfYear);//得到当天是该年的第几天 l = l - (7 - k + 1);if (l <= 0){weeknum = 1;}else{if (l % 7 == 0){weeknum = l / 7 + 1;}else{weeknum = l / 7 + 2;//不能整除的时候要加上前面的一周和后面的一周 }}return weeknum;}/// <summary>/// 取得年唯一名称/// </summary>/// <param name="year"></param>/// <returns></returns>public static string GetYearUniqueName(int year){return string.Format("[时间].[年月日].[年].&[{0}]", year);}/// <summary>/// 取得季唯一名称/// </summary>/// <param name="year"></param>/// <param name="month"></param>/// <returns></returns>public static string GetQuarterUniqueName(int year, int month){string quarter = GetSeason(month).ToString().PadLeft(2, '0');return string.Format("[时间].[年月日].[季度].&[{0}]&[{0}{1}]", year, quarter);}/// <summary>/// 取得月唯一名称/// </summary>/// <param name="year"></param>/// <param name="month"></param>/// <returns></returns>public static string GetMonthUniqueName(int year, int month){string quarter = GetSeason(month).ToString().PadLeft(2, '0');string mon = month.ToString().PadLeft(2, '0');return string.Format("[时间].[年月日].[月].&[{0}]&[{0}{1}]&[{0}{2}]", year, quarter, mon);}/// <summary>/// 取得年唯一名称/// </summary>/// <param name="year"></param>/// <returns></returns>public static string GetYearUniqueName(string year){return string.Format("[发生时间].[年季月].[年].&[{0}]", year);}/// <summary>/// 取得季唯一名称/// </summary>/// <param name="year"></param>/// <param name="month"></param>/// <returns></returns>public static string GetQuarterUniqueName(string year, string month){string quarter = GetSeason(int.Parse(month)).ToString().PadLeft(2, '0');return string.Format("[发生时间].[年季月].[季].&[{0}]", year + quarter);}/// <summary>/// 取得月唯一名称/// </summary>/// <param name="year"></param>/// <param name="month"></param>/// <returns></returns>public static string GetMonthUniqueName(string yearMonth){return string.Format("[发生时间].[年季月].[月].&[{0}]", yearMonth);}/// <summary>/// 取得年唯一名称/// </summary>/// <param name="name">维度名称</param>/// <param name="year">年</param>/// <returns></returns>public static string GetYearUniqueName(string name, string year){return string.Format("[{1}].[年季月].[年].&[{0}]", year, name);}/// <summary>/// 取得季唯一名称/// </summary>/// <param name="year"></param>/// <param name="name">维度名称</param>/// <param name="month"></param>/// <returns></returns>public static string GetQuarterUniqueName(string name, string year, string month){string quarter = GetSeason(int.Parse(month)).ToString().PadLeft(2, '0');return string.Format("[{1}].[年季月].[季].&[{0}]", year + quarter, name);}/// <summary>/// 取得月唯一名称/// </summary>/// <param name="name">维度名称</param>/// <param name="year"></param>/// <param name="month"></param>/// <returns></returns>public static string GetMonthUniqueName(string name, string yearMonth){return string.Format("[{1}].[年季月].[月].&[{0}]", yearMonth, name);}} }
更多推荐
关于时间处理的相关类
发布评论