我想创建一个方法,该方法返回字符串,并(计算期满天数)过期日期与当前日期之间的差异。
如果差异少于1分钟,我将在第二秒返回:8秒
如果差异少于1小时,我将在几分钟后返回:28分钟
如果差异少于24(一天)小时,我将在几个小时前返回:7小时
默认值(如果不匹配),我将退回天数:3天
我已经尝试过的是
(item.EndDate- DateTime.Today).Days
但是当差值少于24小时将返回0时,则不起作用。
你能给我建议吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
您应该从最大价值(您的问题是一天)开始检查到期时间。首先,如下所示编写您的方法:
public static string CalculateExpirationTime(DateTime expiryDate)
{
var currentDate = DateTime.Now;
var dateDifference = (expiryDate - currentDate);
if (dateDifference.Days >= 1)
return $"{ dateDifference.Days } day(s) remained";
else if (dateDifference.Hours >= 1)
return $"{ dateDifference.Hours } hour(s) remained";
else if (dateDifference.Minutes >= 1)
return $"{ dateDifference.Minutes } minute(s) remained";
else if (dateDifference.TotalSeconds >= 1)
return $"{ dateDifference.Seconds } second(s) remained";
return "Expired!";
}
然后这样称呼:
string status = CalculateExpirationTime(item.EndDate);
答案 2 :(得分:0)
DateTime biggerDate; // pretend it has some valid value
DateTime smallDate; // ditto
TimeSpan datesDiff = biggerDate - smallDate; // assume a positive diff.
if (dateDiff.TotalMinutes < 1) {return new TimeSpan(0,0,0,8);} else
if (dateDiff.TotalHours < 1) {return new TimeSpan(0,0,28);} else
if (dateDiff.TotalDays < 1) {return new TimeSpan(0,7,0);} else
return new TimeSpan(3,0,0);
-------------还是? --------------
if (dateDiff.TotalMinutes < 1) {return dateDiff.TotalSeconds;} else
if (dateDiff.TotalHours < 1) {return dateDiff.TotalMinutes;} else
if (dateDiff.TotalDays < 1) {return dateDiff.TotalHours} else
return dateDiff.TotalDays;
-