1. 程式人生 > >計算兩個時間日期差值(asp.net與js)

計算兩個時間日期差值(asp.net與js)

兩個時間相差多少 .net中的timespan應用2008/11/10 11:54TimeSpan 物件表示時間間隔或持續時間,按正負天數、小時數、分鐘數、秒數以及秒的小數部分進行度量。用於度量持續時間的最大時間單位是天。更大的時間單位(如月和年)的天數不同,因此為保持一致性,時間間隔以天為單位來度量。

TimeSpan 物件的值是等於所表示時間間隔的刻度數。一個刻度等於 100 納秒,TimeSpan 物件的值的範圍在 MinValue 和 MaxValue 之間。

TimeSpan 值可以表示為 [-]d.hhss.ff,其中減號是可選的,它指示負時間間隔,d 分量表示天,hh 表示小時(24 小時制),mm 表示分鐘,ss 表示秒,而 ff 為秒的小數部分。即,時間間隔包括整的正負天數、天數和剩餘的不足一天的時長,或者只包含不足一天的時長。例如,初始化為 1.0e+13 刻度的 TimeSpan 物件的文字表示“11.13:46:40”,即 11 天,13 小時,46 分鐘和 40 秒。



TimeSpan 型別實現了 System.IComparable 和 System.IComparable 介面。

protected void Page_Load(object sender, EventArgs e)
{
DateTime startTime=Convert.ToDateTime("2007-04-11 15:53:08");
DateTime endTime = Convert.ToDateTime("2007-05-12 16:54:19"); 
TimeSpan ts = endTime - startTime;
Response.Write("相差的天數"+ts.Days+"<br>");

Response.Write("相差的小時"+ts.Hours+"<br>");
Response.Write("相差的分鐘" + ts.Minutes + "<br>");
Response.Write("相差的秒數" + ts.Seconds + "<br>");
Response.Write("相差的總時間 用天數表示"+ts.TotalDays + "<br>");
Response.Write("相差的總時間 用小時表示" + ts.TotalHours + "<br>");
Response.Write("相差的總時間 用分鐘表示" + ts.TotalMinutes + "<br>");

Response.Write("相差的總時間 用秒數表示" + ts.TotalSeconds + "<br>");
}

執行結果:

相差的天數31
相差的小時1
相差的分鐘1
相差的秒數11
相差的總時間 用天數表示31.0424884259259
相差的總時間 用小時表示745.019722222222
相差的總時間 用分鐘表示44701.1833333333
相差的總時間 用秒數表示2682071   例:DateTime startTime = Convert.ToDateTime("2007-04-11 15:53:08");DateTime endTime = Convert.ToDateTime("2007-05-12 16:54:19"); TimeSpan ts = endTime - startTime;
double totalSeconds = ts.TotalSeconds;//秒數

Console.WriteLine(totalSeconds);

ASP+JS獲取並實時顯示伺服器時間的程式碼

Function showtime()
getdate = now()
time0 = Split(getdate," ")(1)
h = Split(time0,":")(0)
m = Split(time0,":")(1)
s = Split(time0,":")(2)
showtime = h&":"&m&":"&s
End Function

<body topmargin="0" onLoad="meizzTime(secondSub)" >

<script language=javascript type="text/javascript">

//特別註明:北京時間是格林尼治標準時加八小時,因此用的起始時間也是從八點起算的 var secondServer = <%=DateDiff("s", "1970-01-01 08:00:00", Now())%>;

var secondClient = parseInt(new Date().getTime()/1000);

var secondSub = secondServer - secondClient; //兩端時間秒差

//星期函式

 function initArray(){

this.length=initArray.arguments.length

for(var i=0;i <this.length;i++)

this[i+1]=initArray.arguments[i]

}

function meizzTime(n) {

var mei = new Date();

mei.setTime(mei.getTime() + n*1000); //得到一個新的時間

var y = mei.getYear();//年

var t = mei.getMonth()+1;//月分需加1

var d = mei.getDate();//日

var w = new initArray( "星 期 日", "星 期 一", "星 期 二", "星 期 三", "星 期 四", "星 期 五", "星 期 六");

 var z = w[mei.getDay()+1]//星期

var h = (mei.getHours() > 9) ? mei.getHours() : "0" + mei.getHours(); //時

var m = (mei.getMinutes() > 9) ? mei.getMinutes() : "0" + mei.getMinutes(); //分

var s = (mei.getSeconds() > 9) ? mei.getSeconds() : "0" + mei.getSeconds(); //秒

document.meizz.clock1.value = y +"."+ t +"."+ d +", "+ h +":"+ m +":"+ s document.meizz.clock2.value = ""+z +"(農曆 月 日)"; setTimeout("meizzTime(secondSub)", 1000); }

 </script>

<form name="meizz" style="margin:1">

<a target=_blank href="wnl.htm" title="點選檢視:萬年曆">

<input name="clock1" size="21" class="form"> <BR>

 <input name="clock2" size="21" class="form">

</a> </form>