簡體   English   中英

兩個日期之間的天,小時,分鍾,秒

[英]Days, hours, minutes, seconds between two dates

我有兩個約會,一個比另一個少。 我想創建一個像這樣的字符串

“0天,0小時,23分鍾,18秒”

代表兩個日期之間的差異。 我怎樣才能獲得這個字符串的這些元素?

TimeSpan是您需要的對象:

TimeSpan span = (DateTime.Now - DateTime.Now);

String.Format("{0} days, {1} hours, {2} minutes, {3} seconds", 
    span.Days, span.Hours, span.Minutes, span.Seconds);

當您從另一個DateTime減去一個DateTime時,您將獲得一個TimeSpan實例,該實例會公開這些值。

TimeSpan diff = DateTime.Now - DateTime.Today;
string formatted = string.Format(
                       CultureInfo.CurrentCulture, 
                       "{0} days, {1} hours, {2} minutes, {3} seconds", 
                       diff.Days, 
                       diff.Hours, 
                       diff.Minutes, 
                       diff.Seconds);

使用TimeSpan

DateTime startTime = DateTime.Now;

DateTime endTime = DateTime.Now.AddSeconds( 75 );

TimeSpan span = endTime.Subtract ( startTime );
Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
Console.WriteLine( "Time Difference (hours): " + span.Hours );
Console.WriteLine( "Time Difference (days): " + span.Days );

String yourString = string.Format("{0} days, {1} hours, {2} minues, {3} seconds",
    span.Days, span.Hours, span.Minutes, span.Seconds);

使用TimeSpan類,當您減去日期時,您將獲得該類。

您可以使用標准自定義格式字符串格式化輸出。

“0天,0小時,23分鍾,18秒”

可以有類似的東西:

TimeSpan ts = DateTime.Now - DateTime.Today;
Console.WriteLine(
   string.Format("{0:%d} days, {0:%h} hours, {0:%m} minutes, {0:%s} seconds", ts)
);

IMO,它更清晰,更容易使用string.Format而不必轉義格式字符串中的單詞(如果您只是使用.ToString就需要它)或手動構建它。

不要忘記,如果您希望此計算可移植,則需要將其存儲為UTC,然后在顯示時將其轉換為本地時間。 作為一般規則,將日期存儲為UTC並轉換為本地時間進行演示。

你嘗試過使用過嗎?

TimeSpan()

那當然可以做你想要的

這樣的事怎么樣?

    TimeSpan diff = dateTimeNew - dateTimeOld;
    string output = string.Format("{0} days, {1} hours, {2} minues, {3} seconds", diff.Days, diff.Hours, diff.Minutes, diff.Seconds);
    Console.WriteLine(output);
    DateTime myDay = DateTime.Now;
    DateTime otherDate = DateTime.Now.AddYears(1);
    var test = otherDate.Subtract(myDay);
    Console.WriteLine("Days:" + test.Days + "Hours:" + test.Hours +"Minutes" +  test.Minutes +"Seconds" + test.Seconds);

這里的測試是TimeStamp類型

TimeSpan diffTime = dateTimeNew -PreviousDate;
int days=diffTime.Days;
int hours=diffTime.Hours;
int minutes=diffTime.Minutes;
int seconds=diffTime.Seconds;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM