DoubleExtensions.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Hotline.Share.Tools;
  7. public static class DoubleExtensions
  8. {
  9. /// <summary>
  10. /// 秒数转换成 x天x小时x分钟x秒 的字符串
  11. /// </summary>
  12. /// <param name="value"></param>
  13. /// <returns></returns>
  14. public static string SecondsToString(this double value)
  15. {
  16. if (value <= 0) return string.Empty;
  17. var timeSpan = TimeSpan.FromSeconds(value);
  18. var days = timeSpan.Days;
  19. var hours = timeSpan.Hours;
  20. var minutes = timeSpan.Minutes;
  21. var seconds = timeSpan.Seconds;
  22. var sb = new StringBuilder();
  23. if (days > 0)
  24. {
  25. sb.Append($"{days}天");
  26. }
  27. if (hours > 0 || days > 0)
  28. {
  29. sb.Append($"{hours}小时");
  30. }
  31. if (hours > 0 || days > 0 || minutes > 0)
  32. {
  33. sb.Append($"{minutes}分钟");
  34. }
  35. sb.Append($"{seconds}秒");
  36. return sb.ToString();
  37. }
  38. public static string SecondsToString(this double? value)
  39. {
  40. if (value is null) return string.Empty;
  41. return value.Value.SecondsToString();
  42. }
  43. }