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"; }