说明:本类作用:传入一个时间 time,返回和此时间有关的比如"time的今天上午","time的昨天","time的上个季度的第一天",
"time的去年的第二个季度的最后一天的上午的第二个小时",等等.
如果软件中有大量的涉及到时间的算法可以使用本类进行简化,
例:
[mw_shl_code=csharp,true] DateTime timenow = DateTime.Now();
DateTime time = new DateTime();
time = timenow.GetNextMonthBegin();
time = timenow.GetNextQuarterEnd().GetMorningEnd();[/mw_shl_code]
完整类:
[mw_shl_code=csharp,true]using System;
namespace ClassLibrary.UserClass
{
/// *本站禁止HTML标签噢*
/// *本站禁止HTML标签噢* 实现功能:获取指定时间的相对时间段</para>
/// *本站禁止HTML标签噢* 调用方法:直接通过类名调用静态方法</para>
/// *本站禁止HTML标签噢* .</para>
/// *本站禁止HTML标签噢* 创建人员:Clown</para>
/// *本站禁止HTML标签噢* 创建日期:2010-10-31</para>
/// *本站禁止HTML标签噢* 创建备注:</para>
/// *本站禁止HTML标签噢* .</para>
/// *本站禁止HTML标签噢* 修改人员:</para>
/// *本站禁止HTML标签噢* 修改日期:</para>
/// *本站禁止HTML标签噢* 修改备注:</para>
/// </summary>
public static class DateTimeHelper
{
#region 常量
#region 静态常量
#endregion
#endregion
#region 属性
#region 静态属性
#endregion
#endregion
#region 构造
#region 静态构造
#endregion
#endregion
#region 方法
#region 静态方法
/// *本站禁止HTML标签噢*
/// 获取上午起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 上午起始时间</returns>
public static DateTime GetMorningBegin(this DateTime time)
{
DateTime timeMorningBegin = Convert.ToDateTime(time.ToString("yyyy-MM-dd 06:00:00"));
return (timeMorningBegin);
}
/// *本站禁止HTML标签噢*
/// 获取上午终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 上午终止时间</returns>
public static DateTime GetMorningEnd(this DateTime time)
{
DateTime timeMorningEnd = Convert.ToDateTime(time.ToString("yyyy-MM-dd 12:00:00"));
return (timeMorningEnd);
}
/// *本站禁止HTML标签噢*
/// 获取下午起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 下午起始时间</returns>
public static DateTime GetAfternoonBegin(this DateTime time)
{
DateTime timeAfternoonBegin = Convert.ToDateTime(time.ToString("yyyy-MM-dd 12:00:00"));
return (timeAfternoonBegin);
}
/// *本站禁止HTML标签噢*
/// 获取下午终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 下午终止时间</returns>
public static DateTime GetAfternoonEnd(this DateTime time)
{
DateTime timeAfternoonEnd = Convert.ToDateTime(time.ToString("yyyy-MM-dd 18:00:00"));
return (timeAfternoonEnd);
}
/// *本站禁止HTML标签噢*
/// 获取晚上起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 晚上起始时间</returns>
public static DateTime GetEveningBegin(this DateTime time)
{
DateTime timeEveningBengin = Convert.ToDateTime(time.ToString("yyyy-MM-dd 18:00:00"));
return (timeEveningBengin);
}
/// *本站禁止HTML标签噢*
/// 获取晚上终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 晚上终止时间</returns>
public static DateTime GetEveningEnd(this DateTime time)
{
DateTime timeEveningEnd = Convert.ToDateTime(time.AddDays(1).ToString("yyyy-MM-dd 06:00:00"));
return (timeEveningEnd);
}
/// *本站禁止HTML标签噢*
/// 获取昨天起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 昨天起始时间</returns>
public static DateTime GetYesterdayBegin(this DateTime time)
{
DateTime timeYesterdayBegin = Convert.ToDateTime(time.AddDays(-1).ToString("yyyy-MM-dd"));
return (timeYesterdayBegin);
}
/// *本站禁止HTML标签噢*
/// 获取昨天终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 昨天终止时间</returns>
public static DateTime GetYesterdayEnd(this DateTime time)
{
DateTime timeYesterdayEnd = Convert.ToDateTime(time.ToString("yyyy-MM-dd"));
return (timeYesterdayEnd);
}
/// *本站禁止HTML标签噢*
/// 获取今天起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 今天起始时间</returns>
public static DateTime GetTodayBegin(this DateTime time)
{
DateTime timeTodayBegin = Convert.ToDateTime(time.ToString("yyyy-MM-dd"));
return (timeTodayBegin);
}
/// *本站禁止HTML标签噢*
/// 获取今天终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 今天终止时间</returns>
public static DateTime GetTodayEnd(this DateTime time)
{
DateTime timeTodayEnd = Convert.ToDateTime(time.AddDays(1).ToString("yyyy-MM-dd"));
return (timeTodayEnd);
}
/// *本站禁止HTML标签噢*
/// 获取明天起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 明天起始时间</returns>
public static DateTime GetTomorrowBegin(this DateTime time)
{
DateTime timeTorrowBegin = Convert.ToDateTime(time.AddDays(1).ToString("yyyy-MM-dd"));
return (timeTorrowBegin);
}
/// *本站禁止HTML标签噢*
/// 获取明天终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 明天终止时间</returns>
public static DateTime GetTorrowEnd(this DateTime time)
{
DateTime timeTorrowEnd = Convert.ToDateTime(time.AddDays(2).ToString("yyyy-MM-dd"));
return (timeTorrowEnd);
}
/// *本站禁止HTML标签噢*
/// 获取上月起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 上月起始时间</returns>
public static DateTime GetLastMonthBegin(this DateTime time)
{
DateTime timeLastMonthBegin = Convert.ToDateTime(time.AddMonths(-1).ToString("yyyy-MM-01"));
return (timeLastMonthBegin);
}
/// *本站禁止HTML标签噢*
/// 获取上月终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 上月终止时间</returns>
public static DateTime GetLastMonthEnd(this DateTime time)
{
DateTime timeLastMonthEnd = Convert.ToDateTime(time.ToString("yyyy-MM-01"));
return (timeLastMonthEnd);
}
/// *本站禁止HTML标签噢*
/// 获取本月起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 本月起始时间</returns>
public static DateTime GetThisMonthBegin(this DateTime time)
{
DateTime timeThisMonthBegin = Convert.ToDateTime(time.ToString("yyyy-MM-01"));
return (timeThisMonthBegin);
}
/// *本站禁止HTML标签噢*
/// 获取本月终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 本月终止时间</returns>
public static DateTime GetThisMonthEnd(this DateTime time)
{
DateTime timeThisMonthEnd = Convert.ToDateTime(time.AddMonths(1).ToString("yyyy-MM-01"));
return (timeThisMonthEnd);
}
/// *本站禁止HTML标签噢*
/// 获取下月起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 下月起始时间</returns>
public static DateTime GetNextMonthBegin(this DateTime time)
{
DateTime timeNextMonthBeign = Convert.ToDateTime(time.AddMonths(1).ToString("yyyy-MM-01"));
return (timeNextMonthBeign);
}
/// *本站禁止HTML标签噢*
/// 获取下月结束时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 下月结束时间</returns>
public static DateTime GetNextMonthEnd(this DateTime time)
{
DateTime timeNextMonthEnd = Convert.ToDateTime(time.AddMonths(2).ToString("yyyy-MM-01"));
return (timeNextMonthEnd);
}
/// *本站禁止HTML标签噢*
/// 获取一季度起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 一季度起始时间</returns>
public static DateTime GetFirstQuarterBegin(this DateTime time)
{
DateTime timeFirstQuarterBegin = Convert.ToDateTime(time.ToString("yyyy-01-01"));
return (timeFirstQuarterBegin);
}
/// *本站禁止HTML标签噢*
/// 获取一季度结束时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 一季度结束时间</returns>
public static DateTime GetFirstQuarterEnd(this DateTime time)
{
DateTime timeFirstQuarterEnd = Convert.ToDateTime(time.ToString("yyyy-04-01"));
return (timeFirstQuarterEnd);
}
/// *本站禁止HTML标签噢*
/// 获取二季度起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 二季度起始时间</returns>
public static DateTime GetSecondQuarterBegin(this DateTime time)
{
DateTime timeSecondQuarterBegin = Convert.ToDateTime(time.ToString("yyyy-04-01"));
return (timeSecondQuarterBegin);
}
/// *本站禁止HTML标签噢*
/// 获取二季度终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 二季度终止是假</returns>
public static DateTime GetSecondQuarterEnd(this DateTime time)
{
DateTime timeSecondQuarterEnd = Convert.ToDateTime(time.ToString("yyyy-07-01"));
return (timeSecondQuarterEnd);
}
/// *本站禁止HTML标签噢*
/// 获取三季度起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 三季度起始时间</returns>
public static DateTime GetThirdQuarterBegin(this DateTime time)
{
DateTime timeThirdQuarterBegin = Convert.ToDateTime(time.ToString("yyyy-07-01"));
return (timeThirdQuarterBegin);
}
/// *本站禁止HTML标签噢*
/// 获取三季度终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 三季度终止时间</returns>
public static DateTime GetThirdQuarterEnd(this DateTime time)
{
DateTime timeThirdQuarterEnd = Convert.ToDateTime(time.ToString("yyyy-10-01"));
return (timeThirdQuarterEnd);
}
/// *本站禁止HTML标签噢*
/// 获取四季度起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 四季度起始时间</returns>
public static DateTime GetFourthQuarterBegin(this DateTime time)
{
DateTime timeFourthQuarterBegin = Convert.ToDateTime(time.ToString("yyyy-10-01"));
return (timeFourthQuarterBegin);
}
/// *本站禁止HTML标签噢*
/// 获取四季度终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 四季度终止时间</returns>
public static DateTime GetFourthQuarterEnd(this DateTime time)
{
DateTime timeFourthQuarterEnd = Convert.ToDateTime(time.AddYears(1).ToString("yyyy-01-01"));
return (timeFourthQuarterEnd);
}
/// *本站禁止HTML标签噢*
/// 获取上季度起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 上季度起始时间</returns>
public static DateTime GetLastQuarterBegin(this DateTime time)
{
DateTime timeLastQuarterBegin = Convert.ToDateTime(time.AddMonths(-3 - (time.Month - 1) % 3).ToString("yyyy-MM-01"));
return (timeLastQuarterBegin);
}
/// *本站禁止HTML标签噢*
/// 获取上季度终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 上季度终止时间</returns>
public static DateTime GetLastQuarterEnd(this DateTime time)
{
DateTime timeLastQuarterEnd = Convert.ToDateTime(time.AddMonths(-(time.Month - 1) % 3).ToString("yyyy-MM-01"));
return (timeLastQuarterEnd);
}
/// *本站禁止HTML标签噢*
/// 获取本季度起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 本季度起始时间</returns>
public static DateTime GetThisQuarterBegin(this DateTime time)
{
DateTime timeThisQuarterBegin = Convert.ToDateTime(time.AddMonths(-(time.Month - 1) % 3).ToString("yyyy-MM-01"));
return (timeThisQuarterBegin);
}
/// *本站禁止HTML标签噢*
/// 获取本季度终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 本季度终止时间</returns>
public static DateTime GetThisQuarterEnd(this DateTime time)
{
DateTime timeThisQuarterEnd = Convert.ToDateTime(time.AddMonths(3 - (time.Month - 1) % 3).ToString("yyyy-MM-01"));
return (timeThisQuarterEnd);
}
/// *本站禁止HTML标签噢*
/// 获取下季度起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 下季度起始时间</returns>
public static DateTime GetNextQuarterBegin(this DateTime time)
{
DateTime timeNextQuarterBegin = Convert.ToDateTime(time.AddMonths(3 - (time.Month - 1) % 3).ToString("yyyy-MM-01"));
return (timeNextQuarterBegin);
}
/// *本站禁止HTML标签噢*
/// 获取下季度终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 下季度终止时间</returns>
public static DateTime GetNextQuarterEnd(this DateTime time)
{
DateTime timeNextQuarterEnd = Convert.ToDateTime(time.AddMonths(6 - (time.Month - 1) % 3).ToString("yyyy-MM-01"));
return (timeNextQuarterEnd);
}
/// *本站禁止HTML标签噢*
/// 获取去年起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 去年起始时间</returns>
public static DateTime GetLastYearBegin(this DateTime time)
{
DateTime timeLastYearBegin = Convert.ToDateTime(time.AddYears(-1).ToString("yyyy-01-01"));
return (timeLastYearBegin);
}
/// *本站禁止HTML标签噢*
/// 获取去年终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 去年终止时间</returns>
public static DateTime GetLastYearEnd(this DateTime time)
{
DateTime timeLastYearEnd = Convert.ToDateTime(time.ToString("yyyy-01-01"));
return (timeLastYearEnd);
}
/// *本站禁止HTML标签噢*
/// 获取今年起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 今年起始时间</returns>
public static DateTime GetThisYearBegin(this DateTime time)
{
DateTime timeThisYearBegin = Convert.ToDateTime(time.ToString("yyyy-01-01"));
return (timeThisYearBegin);
}
/// *本站禁止HTML标签噢*
/// 获取今年终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 今年终止时间</returns>
public static DateTime GetThisYearEnd(this DateTime time)
{
DateTime timeThisYearEnd = Convert.ToDateTime(time.AddYears(1).ToString("yyyy-01-01"));
return (timeThisYearEnd);
}
/// *本站禁止HTML标签噢*
/// 获取下年起始时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 下年起始时间</returns>
public static DateTime GetNextYearBegin(this DateTime time)
{
DateTime timeNextYearBegin = Convert.ToDateTime(time.AddYears(1).ToString("yyyy-01-01"));
return (timeNextYearBegin);
}
/// *本站禁止HTML标签噢*
/// 获取下年终止时间
/// </summary>
/// <param name="time">输入时间</param>
/// *本站禁止HTML标签噢* 下年终止时间</returns>
public static DateTime GetNextYearEnd(this DateTime time)
{
DateTime timeNextYearEnd = Convert.ToDateTime(time.AddYears(2).ToString("yyyy-01-01"));
return (timeNextYearEnd);
}
#endregion
#endregion
}
}
[/mw_shl_code]
最后,lz想说的是,当初学者你们爱上了类的时候,回过头来想想自己有没有忘记数据库连接怎么写,
码农和程序员的区别在于前者只知道写代码,后者可以兼任软件开发的任何一个职位
另外,lz只有在极个别情况才会出现在这里.....抱歉了...