@@ -1397,44 +1397,42 @@ public static Dictionary<string, string> ScanTemplates(string unityInstallPath)
1397
1397
return items ;
1398
1398
}
1399
1399
1400
- // https://codereview.stackexchange.com/a/93247
1400
+ // chatgpt
1401
1401
public static string GetElapsedTime ( DateTime datetime )
1402
1402
{
1403
- TimeSpan ts = DateTime . Now . Subtract ( datetime ) ;
1403
+ TimeSpan ts = DateTime . Now - datetime ;
1404
1404
1405
- // The trick: make variable contain date and time representing the desired timespan,
1406
- // having +1 in each date component.
1407
- DateTime date = DateTime . MinValue + ts ;
1408
-
1409
- return ProcessPeriod ( date . Year - 1 , date . Month - 1 , "year" )
1410
- ?? ProcessPeriod ( date . Month - 1 , date . Day - 1 , "month" )
1411
- ?? ProcessPeriod ( date . Day - 1 , date . Hour , "day" , "Yesterday" )
1412
- ?? ProcessPeriod ( date . Hour , date . Minute , "hour" )
1413
- ?? ProcessPeriod ( date . Minute , date . Second , "minute" )
1414
- ?? ProcessPeriod ( date . Second , 0 , "second" )
1415
- ?? "Right now" ;
1416
- }
1417
-
1418
- private static string ProcessPeriod ( int value , int subValue , string name , string singularName = null )
1419
- {
1420
- if ( value == 0 )
1405
+ if ( ts . TotalSeconds < 60 )
1421
1406
{
1422
- return null ;
1407
+ return ts . TotalSeconds < 2 ? "Right now" : $ "{ ( int ) ts . TotalSeconds } seconds ago";
1408
+ }
1409
+ else if ( ts . TotalMinutes < 60 )
1410
+ {
1411
+ return ts . TotalMinutes < 2 ? "1 minute ago" : $ "{ ( int ) ts . TotalMinutes } minutes ago";
1412
+ }
1413
+ else if ( ts . TotalHours < 24 )
1414
+ {
1415
+ return ts . TotalHours < 2 ? "1 hour ago" : $ "{ ( int ) ts . TotalHours } hours ago";
1423
1416
}
1424
- if ( value == 1 )
1417
+ else if ( ts . TotalDays < 30 )
1425
1418
{
1426
- if ( ! String . IsNullOrEmpty ( singularName ) )
1419
+ return ts . TotalDays < 2 ? "1 day ago" : $ "{ ( int ) ts . TotalDays } days ago";
1420
+ }
1421
+ else if ( ts . TotalDays < 365 )
1422
+ {
1423
+ if ( ts . TotalDays < 60 )
1424
+ {
1425
+ return "1 month ago" ;
1426
+ }
1427
+ else
1427
1428
{
1428
- return singularName ;
1429
+ return $ " { ( int ) ( ts . TotalDays / 30 ) } months ago" ;
1429
1430
}
1430
- string articleSuffix = name [ 0 ] == 'h' ? "n" : String . Empty ;
1431
- return subValue == 0
1432
- ? String . Format ( "A{0} {1} ago" , articleSuffix , name )
1433
- : String . Format ( "a{0} {1} ago" , articleSuffix , name ) ;
1434
- }
1435
- return subValue == 0
1436
- ? String . Format ( "{0} {1}s ago" , value , name )
1437
- : String . Format ( "{0} {1}s ago" , value , name ) ;
1431
+ }
1432
+ else
1433
+ {
1434
+ return ts . TotalDays < 730 ? "1 year ago" : $ "{ ( int ) ( ts . TotalDays / 365 ) } years ago";
1435
+ }
1438
1436
}
1439
1437
1440
1438
public static bool ValidateDateFormat ( string format )
0 commit comments