从现在开始倒计时到未来的日期[C#]

时间:2015-11-27 20:40:40

标签: c#

您好我正试图从现在到现在的某个时间做倒计时之类的事情,因此我初始化了5个新变量:

int currentYear = DateTime.Now.Year, currentMonth = DateTime.Now.Month, currentDay = DateTime.Now.Day, currentHour = DateTime.Now.Hour, currentMinute = DateTime.Now.Minute;

所以现在我有了f.e.未来的日期如04.11.2016 11:14(Day.Month.Year Hour.Minute)所以现在我试图减去这些值,但我最终得到负数,因为我想倒计时看起来像这样: 年:0000 月份:00 天:00 营业时间:00 分钟:00 秒:00 那不是我想要的结果。所以我想询问是否有一种面向对象的方式如何做到这一点,而不使用大量的if语句?提前致谢

2 个答案:

答案 0 :(得分:1)

使用TimeSpan

DateTime dateInTheFuture = new DateTime(....);
TimeSpan ts = dateInTheFuture - DateTime.Now;
// e.g.
Console.WriteLine (ts.ToString());

检查MSDN中的TimeSpanTimeSpan.ToString()是否有各种格式

答案 1 :(得分:1)

DateTime.Parse中的值是最终/结束时间:

TimeSpan t = DateTime.Parse("1/1/2016 05:00:01 AM") - DateTime.Now;
string output = string.Format("{0} Days, {1} Hours, {2} Minutes, {3} Seconds", 
    t.Days, t.Hours, t.Minutes, t.Seconds);

如果您想添加月份和年份,可以简单地扩展string.Format方法。