asp.net中C#中計算時間差代碼

來源:互聯網
上載者:User

我用的最簡單的辦法是

 代碼如下 複製代碼

DateTime dtone = Convert.ToDateTime("2007-1-1 05:32:22");
DateTime dtwo = Convert.ToDateTime("2007-1-1 04:20:15");
TimeSpan span = dtone.Subtract(dtwo);
Response.Write(span.Days + "天" + span.Hours + "小時" + span.Minutes + "分鐘" + span.Seconds+"秒");

上面是給定兩個時間,計算時間差,輸出類似於“相差10天5小時10分28秒”的格式了,但是如果我想算出兩個頁面執行時差呢。

執行個體1

 代碼如下 複製代碼
/// <summary>
        /// 程式執行時間測試
        /// </summary>
        /// <param name="dateBegin">開始時間</param>
        /// <param name="dateEnd">結束時間</param>
        /// <returns>返回(秒)單位,比如: 0.00239秒</returns>
public static string ExecDateDiff(DateTime dateBegin, DateTime dateEnd)
{
       TimeSpan ts1 = new TimeSpan(dateBegin.Ticks);
       TimeSpan ts2 = new TimeSpan(dateEnd.Ticks);
       TimeSpan ts3 = ts1.Subtract(ts2).Duration();
       //你想轉的格式
       return

ts3.TotalMilliseconds.ToString();
}

這是最基本的,得到的是毫秒數

如果你是只單純的需要你的那種格式完全可以直接取前10位就行了

 代碼如下 複製代碼

1.ts3.ToString("g")   0:00:07.171
2.ts3.ToString("c")   00:00:07.1710000
3.ts3.ToString("G")   0:00:00:07.1710000

有三種格式可以選擇,我建議如果需要其實一種的時候可以使用截取的試比較快捷
比如

 代碼如下 複製代碼

ts3.ToString("g").Substring(0,8)   0:00:07.1
ts3.ToString("c").Substring(0,8)   00:00:07
ts3.ToString("G").Substring(0,8)   0:00:00

--------------------------------------------------------------------------------

C#中使用TimeSpan計算兩個時間的差值

 代碼如下 複製代碼

可以反加兩個日期之間任何一個時間單位。
private string DateDiff(DateTime DateTime1, DateTime DateTime2)
{string dateDiff = null;
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
dateDiff = ts.Days.ToString()+"天"+ ts.Hours.ToString()+"小時"+ ts.Minutes.ToString()+"分鐘"+ ts.Seconds.ToString()+"秒";
return dateDiff;
}


TimeSpan ts = Date1 - Date2;
double dDays = ts.TotalDays;//帶小數的天數,比如1天12小時結果就是1.5
int nDays = ts.Days;//整數天數,1天12小時或者1天20小時結果都是1

最近發表時間的函數

 代碼如下 複製代碼
public string DateStringFromNow(DateTime dt)
{
TimeSpan span = DateTime.Now - dt;
if (span.TotalDays > 60)
{
return dt.ToShortDateString();
}
else if ( span.TotalDays > 30 )
{
return "1個月前";
}
else if (span.TotalDays > 14)
{
return "2周前";
}
else if (span.TotalDays > 7)
{
return "1周前";
}
else if (span.TotalDays > 1)
{
return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));
}
else if (span.TotalHours > 1)
{
return string.Format("{0}小時前", (int)Math.Floor(span.TotalHours));
}
else if (span.TotalMinutes > 1)
{
return string.Format("{0}分鐘前", (int)Math.Floor(span.TotalMinutes));
}
else if (span.TotalSeconds >= 1)
{
return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));
}
else
{
return "1秒前";
}
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.