使用C#實現Datediff

本文介绍了一个C#中的实用工具类,用于计算两个日期之间的差值,包括秒、分钟、小时、天数、周数、月数、季度及年数等不同时间单位的差值。

SQL 中有Datediff函數﹐在需要進行時間方面的計算機時很好使﹐可在C#中卻沒有這種函數﹐一個偶然的機會﹐在網上找到如下類。轉貼在這里。以供日后使用.

publicenumDateInterval
{
Second,Minute,Hour,Day,Week,Month,Quarter,Year
}

publicsealedclassDateTimeManger
{
privateDateTimeManger()
{}//endofdefaultconstructor
publicstaticlongDateDiff(DateIntervalInterval,System.DateTimeStartDate,System.DateTimeEndDate)
{
longlngDateDiffValue=0;
System.TimeSpanTS
=newSystem.TimeSpan(EndDate.Ticks-StartDate.Ticks);
switch(Interval)
{
caseDateInterval.Second:
lngDateDiffValue
=(long)TS.TotalSeconds;
break;
caseDateInterval.Minute:
lngDateDiffValue
=(long)TS.TotalMinutes;
break;
caseDateInterval.Hour:
lngDateDiffValue
=(long)TS.TotalHours;
break;
caseDateInterval.Day:
lngDateDiffValue
=(long)TS.Days;
break;
caseDateInterval.Week:
lngDateDiffValue
=(long)(TS.Days/7);
break;
caseDateInterval.Month:
lngDateDiffValue
=(long)(TS.Days/30);
break;
caseDateInterval.Quarter:
lngDateDiffValue
=(long)((TS.Days/30)/3);
break;
caseDateInterval.Year:
lngDateDiffValue
=(long)(TS.Days/365);
break;
}

return(lngDateDiffValue);
}
//endofDateDiff
}
//endofclass

Samples:
publicclassDateDiffCS
{
publicstaticvoidMain(string[]CmdLineArgs)
{
System.DateTimedate1
=System.DateTime.Now;
System.DateTimedate2
=System.DateTime.Now.AddYears(2);
System.Console.Out.WriteLine(
"Days:"+DateTimeManger.DateDiff
(DateTimeManger.DateInterval.Day,date1,date2).ToString());
System.Console.Out.WriteLine(
"Hours:"+DateTimeManger.DateDiff
(DateTimeManger.DateInterval.Hour,date1,date2).ToString());
System.Console.Out.WriteLine(
"Minutes:"+DateTimeManger.DateDiff
(DateTimeManger.DateInterval.Minute,date1,date2).ToString());
System.Console.Out.WriteLine(
"Month:"+DateTimeManger.DateDiff
(DateTimeManger.DateInterval.Month,date1,date2).ToString());
System.Console.Out.WriteLine(
"Quarter:"+DateTimeManger.DateDiff
(DateTimeManger.DateInterval.Quarter,date1,date2).ToString());
System.Console.Out.WriteLine(
"Seconds:"+DateTimeManger.DateDiff
(DateTimeManger.DateInterval.Second,date1,date2).ToString());
System.Console.Out.WriteLine(
"Week:"+DateTimeManger.DateDiff
(DateTimeManger.DateInterval.Week,date1,date2).ToString());
System.Console.Out.WriteLine(
"Year:"+DateTimeManger.DateDiff
(DateTimeManger.DateInterval.Year,date1,date2).ToString());
System.Console.In.ReadLine();
}

}
//endoftheclass
From:
HP.Mahesh.UtilityManager.Libraries.DateTimeUtility

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值