StringHelper.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. using System;
  2. namespace IwbZero.Helper
  3. {
  4. public static class StringHelper
  5. {
  6. /// <summary>
  7. /// 检查空字符串
  8. /// </summary>
  9. /// <param name="str"></param>
  10. /// <returns></returns>
  11. public static bool IsEmpty(this string str)
  12. {
  13. return string.IsNullOrEmpty(str);
  14. }
  15. /// <summary>
  16. /// 检查是否以某字符串开头,不是加上此字符串
  17. /// </summary>
  18. /// <param name="str"></param>
  19. /// <param name="startStr"></param>
  20. /// <returns></returns>
  21. public static string Sw(this string str,string startStr)
  22. {
  23. return str.StartsWith(startStr) ? str : $"{startStr}{str}";
  24. }
  25. /// <summary>
  26. /// 检查是否以某字符串结尾,不是加上此字符串
  27. /// </summary>
  28. /// <param name="str"></param>
  29. /// <param name="endStr"></param>
  30. /// <returns></returns>
  31. public static string Ew(this string str,string endStr)
  32. {
  33. return str.EndsWith(endStr) ? str : $"{str}{endStr}";
  34. }
  35. public static string LeftPad(this int i, int num,string charStr="0")
  36. {
  37. return i.ToString().PadLeft(num, Convert.ToChar(charStr));
  38. }
  39. public static string RightPad(this int i, int num,string charStr="0")
  40. {
  41. return i.ToString().PadRight(num, Convert.ToChar(charStr));
  42. }
  43. public static string LeftPad(this string s, int num,string charStr="0")
  44. {
  45. return s.PadLeft(num, Convert.ToChar(charStr));
  46. }
  47. public static string RightPad(this string s, int num,string charStr="0")
  48. {
  49. return s.PadRight(num, Convert.ToChar(charStr));
  50. }
  51. #region DateTime
  52. /// <summary>
  53. /// 生成周期起始时间
  54. /// </summary>
  55. /// <param name="year"></param>
  56. /// <param name="type">1-12:月份 13-16:季度 17:上半年 18:下半年 other:整年</param>
  57. /// <returns></returns>
  58. public static DateTime GetDateByType(this int year, int? type,out DateTime endDate,out string dateStr)
  59. {
  60. DateTime startDate;
  61. //生成周期起始时间
  62. if (type == null)
  63. {
  64. startDate= new DateTime(year,1,1);
  65. endDate = startDate.AddYears(1);
  66. dateStr = $"{year}年度";
  67. }
  68. else if(type>12)
  69. {
  70. switch (type)
  71. {
  72. //第一季度
  73. case 13:
  74. startDate= new DateTime(year,1,1);
  75. endDate = new DateTime(year,4,1);
  76. dateStr = $"{year}年一季度";
  77. break;
  78. //第二季度
  79. case 14:
  80. startDate= new DateTime(year,4,1);
  81. endDate = new DateTime(year,7,1);
  82. dateStr = $"{year}年二季度";
  83. break;
  84. //第三季度
  85. case 15:
  86. startDate= new DateTime(year,7,1);
  87. endDate = new DateTime(year,10,1);
  88. dateStr = $"{year}年三季度";
  89. break;
  90. //第四季度
  91. case 16:
  92. startDate= new DateTime(year,10,1);
  93. endDate = new DateTime(year+1,1,1);
  94. dateStr = $"{year}年四季度";
  95. break;
  96. //上半年
  97. case 17:
  98. startDate= new DateTime(year,1,1);
  99. endDate = new DateTime(year,7,1);
  100. dateStr = $"{year}年上半年";
  101. break;
  102. //下半年
  103. case 18:
  104. startDate= new DateTime(year,7,1);
  105. endDate = new DateTime(year+1,1,1);
  106. dateStr = $"{year}年下半年";
  107. break;
  108. //整年
  109. default:
  110. startDate= new DateTime(year,1,1);
  111. endDate = startDate.AddYears(1);
  112. dateStr = $"{year}年度";
  113. break;
  114. }
  115. }
  116. else
  117. {
  118. startDate= new DateTime(year,type??0,1);
  119. endDate = startDate.AddMonths(1);
  120. dateStr = $"{year}年{type}月";
  121. }
  122. return startDate;
  123. }
  124. /// <summary>
  125. /// 时间差(分)
  126. /// </summary>
  127. /// <param name="start"></param>
  128. /// <param name="end"></param>
  129. /// <returns></returns>
  130. public static int GetTimeSpanMinute(this DateTime start, DateTime end)
  131. {
  132. return Convert.ToInt32(GetTimeSpan(start, end).TotalMinutes);
  133. }
  134. /// <summary>
  135. /// 时间差
  136. /// </summary>
  137. /// <param name="start"></param>
  138. /// <param name="end"></param>
  139. /// <returns></returns>
  140. public static TimeSpan GetTimeSpan(this DateTime start, DateTime end)
  141. {
  142. TimeSpan timeSpan = end - start;
  143. return timeSpan;
  144. }
  145. #endregion
  146. }
  147. }