public static string GetYearMonthDayString(this DateTime expires)
{
try
{
var now = DateTime.Now;
TimeSpan ts = expires - now;
int year = 0, month = 0, day = ts.Days;
year = (int)ts.TotalDays / 365;
DateTime mi = now.AddYears(year);
while ((mi = mi.AddMonths(1)) <= expires)
{
month++;
}
if (year > 0 && month <= 0)
{
return $"{year}年";
}
if (year > 0 && month > 0)
{
return $"大约{year}年{month}个月";
}
if (year <= 0 && month > 0)
{
return $"大约{month}个月";
}
if (year <= 0 && month <= 0&&day>0)
{
return $"{day}天";
}
if (year <= 0 && month <= 0 && day <= 0&&ts.Hours>0)
{
return $"{ts.Hours}小时";
}
return $"{Convert.ToInt16(ts.Days <= 0?0:ts.Days)}天";
}
catch
{
}
return "0";
}