激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - 詳解C# TimeSpan 計算時間差(時間間隔)

詳解C# TimeSpan 計算時間差(時間間隔)

2021-12-15 13:07黎明&歲月 C#

本篇文章主要介紹了C# TimeSpan 計算時間差(時間間隔),非常具有實用價值,需要的朋友可以參考下。

timespan 結構  表示一個時間間隔。

命名空間:system 程序集:mscorlib(在 mscorlib.dll 中)

說明: 1.datetime值類型代表了一個從公元0001年1月1日0點0分0秒到公元9999年12月31日23點59分59秒之間的具體日期時刻。因此,你可以用datetime值類型來描述任何在想象范圍之內的時間。timespan值包含了許多屬性與方法,用于訪問或處理一個timespan值,

其中的五個重載方法之一的結構 timespan( int days, int hours, int minutes, int seconds )

下面的列表涵蓋了其中的一部分方法及屬性解釋

  • 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值表示的秒數。

代碼實例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
timespan ts = new timespan(12, 12, 11, 12, 21);
      int days = new timespan(12, 12, 11, 12, 21).days;
      timespan duration = new timespan(-12, 12, 11, 12, 21).duration();//24小時的反值
      double totaldays = new timespan(12, 12, 11, 12, 21).totaldays;
      double totalhours = new timespan(2, 12, 11, 12, 21).totalhours;
      int hours = new timespan(12, 12, 11, 12, 21).hours;
      int minutes = new timespan(12, 12, 11, 12, 21).minutes;
      timespan ts2 = new timespan(1, 3, 01, 12, 21);
      // timespan ts2 = new timespan(5, 3, 1, 12, 21);//this is also right
      timespan ts3 = new timespan(5, 3, 01, 12, 21).add(ts);
      timespan ts4 = new timespan(4, 3, 01, 12, 21).subtract(ts);
      timespan ts5 = new timespan(4, 3, 01, 12, 21).subtract(ts).duration();
      timespan negate = new timespan(5, 3, 01, 12, 21).negate();
      datetime dtnow = datetime.now;
      console.writeline(ts);
      console.writeline(days);
      console.writeline(duration);
      console.writeline(totaldays);
      console.writeline(totalhours);
      console.writeline(hours);
      console.writeline(minutes);
      console.writeline(ts2);
      console.writeline(ts+ts2);
      console.writeline(ts3);
      console.writeline("subtract:"+ts4);
      console.writeline("duration:" + ts5);
      console.writeline(ts - ts2);
      console.writeline(negate);
      datetime span = datetime.now.add(ts2);
      timespan spdate = span - datetime.now;
      long dateticks = datetime.now.add(ts2).ticks;
      console.writeline(span);
      console.writeline(spdate);
      console.writeline(dateticks);

詳解C# TimeSpan 計算時間差(時間間隔)

負數

上面是較晚的日期減較早的日期,所以各屬性值為正數,如果是較早的日期減較晚的日期,則屬性值為負數。

asp.net 中,兩個時間相減,得到一個 timespan 實例,timespan 有一些屬性:days、totaldays、hours、totalhours、minutes、totalminutes、seconds、totalseconds、ticks,注意沒有 totalticks。

舉例說明

時間 1 是 2010-1-2 8:43:35;

時間 2 是 2010-1-12 8:43:34。

用時間 2 減時間 1,得到一個 timespan 實例。

那么時間 2 比時間 1 多 9 天 23 小時 59 分 59 秒。

那么,days 就是 9,hours 就是 23,minutes 就是 59,seconds 就是 59。

再來看 ticks,tick 是一個計時周期,表示一百納秒,即一千萬分之一秒,那么 ticks 在這里表示總共相差多少個時間周期,即:9 * 24 * 3600 * 10000000 + 23 * 3600 * 10000000 +59 * 60 * 10000000 + 59 * 10000000 = 8639990000000。3600 是一小時的秒數。

totaldays 就是把 ticks 換算成日數,即:8639990000000 / (10000000 * 24 * 3600) = 9.99998842592593。

totalhours 就是把 ticks 換算成小時數,即:8639990000000 / (10000000 * 3600) = 239.999722222222。

totalminutes 就是把 ticks 換算成分鐘數,即:8639990000000 / (10000000 * 60) = 14399.9833333333。

totalseconds 就是把 ticks 換算成秒數,即:8639990000000 / (10000000) = 863999。

以下提供一些常用的方法

求離最近發表時間的函數

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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秒前";
 
}
}

c#中使用timespan計算兩個時間的差值

可以反加兩個日期之間任何一個時間單位。

?
1
2
3
4
5
6
7
8
9
10
11
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

比如1天12小時結果就是1.5

int ndays = ts.days;//整數天數,1天12小時或者1天20小時結果都是1

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/// <summary>
/// 日期比較
/// </summary>
/// <param name="today">當前日期</param>
/// <param name="writedate">輸入日期</param>
/// <param name="n">比較天數</param>
<returns>大于天數返回true,小于返回false</returns>
private bool comparedate(string today, string writedate, int n)
{
datetime today = convert.todatetime(today);
datetime writedate = convert.todatetime(writedate);
writedate = writedate.adddays(n);
if (today>= writedate)
return false;
else
return true;
}

在定義date數據類型時候,必須注意下面三點:

1. date數值必須以數字符號"#"括起來。

2. date數值中的日期數據可有可無,如果有必須符合格式"m/d/yyyy"。

3. date數值中的時間數據可有可無,如果有必須和日期數據通過空格分開,并且時分秒之間以":"分開。

一.datetime和timespan的關系和區別:

datetime和timespan是visual basic .net中用以處理時間日期類型數據的二個主要的結構,這二者的區別在于,dattime表示一個固定的時間,而timespan表示的是一個時間間隔, 即一段時間。在下面介紹的程序示例中,timespan就用以當前時間和給定時間之差。

二.datetime和timespan中的常用成員及其說明:

datetime結構和timespan結構提供了豐富的方法和屬性,

屬性 說明

  • date 獲取此實例的日期部分。
  • day 獲取此實例所表示的日期為該月中的第幾天。
  • dayofweek 獲取此實例所表示的日期是星期幾。
  • dayofyear 獲取此實例所表示的日期是該年中的第幾天。
  • hour 獲取此實例所表示日期的小時部分。
  • millisecond 獲取此實例所表示日期的毫秒部分。
  • minute 獲取此實例所表示日期的分鐘部分。
  • month 獲取此實例所表示日期的月份部分。
  • now 創建一個datetime實例,它是此計算機上的當前本地日期和時間。
  • second 獲取此實例所表示日期的秒部分。
  • timeofday 獲取此實例的當天的時間。
  • today 獲取當前日期。
  • year 獲取此實例所表示日期的年份部分。
  • add 將指定的timespan的值加到此實例的值上。
  • adddays 將指定的天數加到此實例的值上。
  • addhours 將指定的小時數加到此實例的值上。
  • addmilliseconds 將指定的毫秒數加到此實例的值上。
  • addminutes 將指定的分鐘數加到此實例的值上。
  • addmonths 將指定的月份數加到此實例的值上。
  • addseconds 將指定的秒數加到此實例的值上。
  • addyears 將指定的年份數加到此實例的值上。
  • daysinmonth 返回指定年份中指定月份的天數。
  • isleapyear 返回指定的年份是否為閏年的指示。
  • parse 將日期和時間的指定字符串表示轉換成其等效的datetime實例。
  • subtract 從此實例中減去指定的時間或持續時間。
  • tolongdatestring 將此實例的值轉換為其等效的長日期字符串表示形式。
  • tolongtimestring 將此實例的值轉換為其等效的長時間字符串表示形式。
  • toshorttimestring 將此實例的值轉換為其等效的短時間字符串表示形式。
  • toshortdatestring 將此實例的值轉換為其等效的短日期字符串表示形式。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/qinpengming/p/3265579.html

延伸 · 閱讀

精彩推薦
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
主站蜘蛛池模板: 久草在线视频精品 | 51色视频 | 久久经典视频 | 午夜视频中文字幕 | 麻豆911| 91精品国产综合久久婷婷香 | 亚洲九九色| 欧美四级在线观看 | 手机在线看片国产 | www.9191.com| 欧美成人精品h版在线观看 国产一级淫片在线观看 | 一区二区高清视频在线观看 | 免费国产视频大全入口 | 国产成人精品区 | 国产1区2| 国产精品久久久久久久久久大牛 | 黄色电影免费提供 | 毛片一级免费看 | 特级毛片a级毛片100免费 | 激情亚洲一区二区 | 久久吊 | 欧美 国产 亚洲 卡通 综合 | 成人国产精品一区 | 99欧美精品 | 九九精品在线观看 | 亚洲视频在线一区二区 | 素人视频免费观看 | 一本一本久久a久久精品综合小说 | 欧美一级网址 | 港台三级在线观看 | 久久久精品视频国产 | 国产精品视频免费看 | 久久看视频| 孕妇体内谢精满日本电影 | 国产精品9191| 欧美成人高清视频 | 亚洲一级网站 | 高清av免费 | 一级电影免费在线观看 | 亚洲视频在线观看免费 | 国产一级免费在线视频 |