最近折騰什么周期性工作安排,對時間的操作加強了一點,得出在應用軟件中時間真是個注意的地方,像客戶要求“2006-03-16 12:00:00” 或者是“2006年03月16日 12:00:00” 。他們說到很簡單,但是落實到我們這里不是很難得活,但是心情上總是有點煩躁,在此,我為天下程序員打抱個不平。嘿嘿,當然,俺也自我安慰一下,言歸正傳,我把時間操作的心得貼出來,共享之:
一、取某月的最后一天
法一、使用算出該月多少天,年+月+加上多少天即得,舉例取今天這個月的最后一天
private void getlastdateformonth(datetime dtstart,out datetime dtend)
{
int dtyear,dtmonth;
dtstart = datetime.now;
dtyear = dtstart.year;
dtmonth = dtstart.month;
int monthcount = datetime.daysinmonth(dtyear,dtmonth);
dtend = convert.todatetime(dtyear.tostring()+"-"+dtmonth.tostring()+"-"+monthcount);
}
法二、取出下月的第一天減去一天便是這個的最后一天
private void getlastdateformonth(datetime dtstart,out datetime dtend)
{
int dtyear,dtmonth;
dtstart = datetime.now.addmonths(1);
dtyear = dtstart.year;
dtmonth = dtstart.month;
dtend = convert.todatetime(dtyear.tostring()+"-"+dtmonth.tostring()+"-"+"1").adddays(-1);
}
二、時間差的計算
法一、使用timespan ,同時也介紹一下timespan的用法
相關屬性和函數
add:與另一個timespan值相加。
days:返回用天數計算的timespan值。
duration:獲取timespan的絕對值。
hours:返回用小時計算的timespan值
milliseconds:返回用毫秒計算的timespan值。
minutes:返回用分鐘計算的timespan值。
negate:返回當前實例的相反數。
seconds:返回用秒計算的timespan值。
subtract:從中減去另一個timespan值。
ticks:返回timespan值的tick數。
totaldays:返回timespan值表示的天數。
totalhours:返回timespan值表示的小時數。
totalmilliseconds:返回timespan值表示的毫秒數。
totalminutes:返回timespan值表示的分鐘數。
totalseconds:返回timespan值表示的秒數。
簡單示例:
datetime d1 =new datetime(2004,1,1,15,36,05);
datetime d2 =new datetime(2004,3,1,20,16,35);
timespan d3 = d2.subtract(d1);
lbtime.text = "相差:"
+d3.days.tostring()+"天"
+d3.hours.tostring()+"小時"
+d3.minutes.tostring()+"分鐘"
+d3.seconds.tostring()+"秒";
法二、使用sql中的datediff函數
使用方法:datediff ( datepart , startdate , enddate )
它能幫你取出你想要的各種形式的時間差,如相隔多少天,多少小時,多少分鐘等,具體格式如下:
| 日期部分 | 縮寫 |
|---|---|
| year | yy, yyyy |
| quarter | qq, q |
| month | mm, m |
| dayofyear | dy, y |
| day | dd, d |
| week | wk, ww |
| hour | hh |
| minute | mi, n |
| second | ss, s |
| millisecond | ms |
新聞熱點
疑難解答