您好我正试图从现在到现在的某个时间做倒计时之类的事情,因此我初始化了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语句?提前致谢
答案 0 :(得分:1)
使用TimeSpan
DateTime dateInTheFuture = new DateTime(....);
TimeSpan ts = dateInTheFuture - DateTime.Now;
// e.g.
Console.WriteLine (ts.ToString());
检查MSDN中的TimeSpan和TimeSpan.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方法。