在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
复制代码 代码如下: using System; namespace Utilities { /// <summary> /// Common DateTime Methods. /// </summary> /// public enum Quarter { First = 1, Second = 2, Third = 3, Fourth = 4 } public enum Month { January = 1, February = 2, March = 3, April = 4, May = 5, June = 6, July = 7, August = 8, September = 9, October = 10, November = 11, December = 12 } public class DateUtilities { #region Quarter public static DateTime GetStartOfQuarter( int Year, Quarter Qtr ) { if( Qtr == Quarter.First ) // 1st Quarter = January 1 to March 31 return new DateTime( Year, 1, 1, 0, 0, 0, 0 ); else if( Qtr == Quarter.Second ) // 2nd Quarter = April 1 to June 30 return new DateTime( Year, 4, 1, 0, 0, 0, 0 ); else if( Qtr == Quarter.Third ) // 3rd Quarter = July 1 to September 30 return new DateTime( Year, 7, 1, 0, 0, 0, 0 ); else // 4th Quarter = October 1 to December 31 return new DateTime( Year, 10, 1, 0, 0, 0, 0 ); } public static DateTime GetEndOfQuarter( int Year, Quarter Qtr ) { if( Qtr == Quarter.First ) // 1st Quarter = January 1 to March 31 return new DateTime( Year, 3, DateTime.DaysInMonth( Year, 3 ), 23, 59, 59, 999 ); else if( Qtr == Quarter.Second ) // 2nd Quarter = April 1 to June 30 return new DateTime( Year, 6, DateTime.DaysInMonth( Year, 6 ), 23, 59, 59, 999 ); else if( Qtr == Quarter.Third ) // 3rd Quarter = July 1 to September 30 return new DateTime( Year, 9, DateTime.DaysInMonth( Year, 9 ), 23, 59, 59, 999 ); else // 4th Quarter = October 1 to December 31 return new DateTime( Year, 12, DateTime.DaysInMonth( Year, 12 ), 23, 59, 59, 999 ); } public static Quarter GetQuarter( Month month ) { if( month <= Month.March ) // 1st Quarter = January 1 to March 31 return Quarter.First; else if( ( month >= Month.April ) && ( month <= Month.June ) ) // 2nd Quarter = April 1 to June 30 return Quarter.Second; else if( ( month >= Month.July ) && ( month <= Month.September ) ) // 3rd Quarter = July 1 to September 30 return Quarter.Third; else // 4th Quarter = October 1 to December 31 return Quarter.Fourth; } public static DateTime GetEndOfLastQuarter() { if( DateTime.Now.Month <= (int)Month.March ) //go to last quarter of previous year return GetEndOfQuarter( DateTime.Now.Year - 1, GetQuarter( Month.December )); else //return last quarter of current year return GetEndOfQuarter( DateTime.Now.Year, GetQuarter( (Month)DateTime.Now.Month)); } public static DateTime GetStartOfLastQuarter() { if( DateTime.Now.Month <= 3 ) //go to last quarter of previous year return GetStartOfQuarter( DateTime.Now.Year - 1, GetQuarter( Month.December )); else //return last quarter of current year return GetStartOfQuarter( DateTime.Now.Year, GetQuarter( (Month)DateTime.Now.Month)); } public static DateTime GetStartOfCurrentQuarter() { return GetStartOfQuarter( DateTime.Now.Year, GetQuarter( (Month)DateTime.Now.Month )); } public static DateTime GetEndOfCurrentQuarter() { return GetEndOfQuarter( DateTime.Now.Year, GetQuarter( (Month)DateTime.Now.Month )); } #endregion #region Weeks public static DateTime GetStartOfLastWeek() { int DaysToSubtract = (int)DateTime.Now.DayOfWeek + 7; DateTime dt = DateTime.Now.Subtract( System.TimeSpan.FromDays( DaysToSubtract ) ); return new DateTime( dt.Year, dt.Month, dt.Day, 0, 0, 0, 0 ); } public static DateTime GetEndOfLastWeek() { DateTime dt = GetStartOfLastWeek().AddDays(6); return new DateTime( dt.Year, dt.Month, dt.Day, 23, 59, 59, 999 ); } public static DateTime GetStartOfCurrentWeek() { int DaysToSubtract = (int)DateTime.Now.DayOfWeek ; DateTime dt = DateTime.Now.Subtract( System.TimeSpan.FromDays( DaysToSubtract ) ); return new DateTime( dt.Year, dt.Month, dt.Day, 0, 0, 0, 0 ); } public static DateTime GetEndOfCurrentWeek() { DateTime dt = GetStartOfCurrentWeek().AddDays(6); return new DateTime( dt.Year, dt.Month, dt.Day, 23, 59, 59, 999 ); } #endregion #region Months public static DateTime GetStartOfMonth( int Month, int Year ) { return new DateTime( Year, Month, 1, 0, 0, 0, 0 ); } public static DateTime GetEndOfMonth( int Month, int Year ) { return new DateTime( Year, Month, DateTime.DaysInMonth( Year, Month ), 23, 59, 59, 999 ); } public static DateTime GetStartOfLastMonth() { if( DateTime.Now.Month == 1 ) return GetStartOfMonth( 12, DateTime.Now.Year - 1); else return GetStartOfMonth( DateTime.Now.Month -1, DateTime.Now.Year ); } public static DateTime GetEndOfLastMonth() { if( DateTime.Now.Month == 1 ) return GetEndOfMonth( 12, DateTime.Now.Year - 1); else return GetEndOfMonth( DateTime.Now.Month -1, DateTime.Now.Year ); } public static DateTime GetStartOfCurrentMonth() { return GetStartOfMonth( DateTime.Now.Month, DateTime.Now.Year ); } public static DateTime GetEndOfCurrentMonth() { return GetEndOfMonth( DateTime.Now.Month, DateTime.Now.Year ); } #endregion #region Years public static DateTime GetStartOfYear( int Year ) { return new DateTime( Year, 1, 1, 0, 0, 0, 0 ); } public static DateTime GetEndOfYear( int Year ) { return new DateTime( Year, 12, DateTime.DaysInMonth( Year, 12 ), 23, 59, 59, 999 ); } public static DateTime GetStartOfLastYear() { return GetStartOfYear( DateTime.Now.Year - 1 ); } public static DateTime GetEndOfLastYear() { return GetEndOfYear( DateTime.Now.Year - 1 ); } public static DateTime GetStartOfCurrentYear() { return GetStartOfYear( DateTime.Now.Year ); } public static DateTime GetEndOfCurrentYear() { return GetEndOfYear( DateTime.Now.Year ); } #endregion #region Days public static DateTime GetStartOfDay( DateTime date ) { return new DateTime( date.Year, date.Month, date.Day, 0, 0, 0, 0 ); } public static DateTime GetEndOfDay( DateTime date ) { return new DateTime( date.Year, date.Month, date.Day, 23, 59, 59, 999 ); } #endregion } } |
请发表评论