編碼能力不是很強,有沒有很好的計算方式ε=(´ο`*)))!!!求解!!!
/// <summary>
/// 日期間隔計算
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
private static string Duration(DateTime dt)
{
DateTime now = DateTime.Now;
int second = now.Second - dt.Second;
int min = now.Minute - dt.Minute;
int hour = now.Hour - dt.Hour;
int day = now.Day - dt.Day;
int month = now.Month - dt.Month;
int year = now.Year - dt.Year;
int sumDay = Convert.ToDateTime(dt.ToString("yyyy-MM")).AddMonths(1).AddDays(-1).Day;
TimeSpan ts = now - dt;
if (now.Second < dt.Second)
{
min--;
second += 60;
}
if (now.Minute < dt.Minute)
{
hour--;
min += 60;
}
if (now.Hour < dt.Hour)
{
day--;
hour += 24;
}
if (now.Day < dt.Day)
{
month--;
day += sumDay;
}
if (now.Month <= dt.Month)
{
year--;
month += 12;
}
if (month == 12)
{
year++;
month -= 12;
}
string result = "";
if (year >= 1)
{
result = $"{year}年前";
}
else if (month >= 1)
result = $"{month}個月前";
else if (day >= 1)
result = $"{day}天前";
else if (hour >= 1)
result = $"{hour}小時前";
else if (min >= 1)
result = $"{min}分鐘前";
else
result = $"{second}秒前";
return result;
}