-
日期和时间处理的类库
发一个专门处理时间和日期的类库,记录以备查询。
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 } }
出处:https://www.cnblogs.com/jaxu/archive/2011/12/31/2308376.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数