GenerateHelper.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Ropin.Inspection.Common.Helper
  7. {
  8. public class GenerateHelper
  9. {
  10. //生成随机年份
  11. public static int generateYear()
  12. {
  13. StringBuilder bu = new StringBuilder();
  14. Random rd = new Random();
  15. int year = rd.Next(1900, DateTime.Now.Year);
  16. bu.Append(year);
  17. return int.Parse(bu.ToString());
  18. }
  19. //生成
  20. public static string generate()
  21. {
  22. StringBuilder bu = new StringBuilder();
  23. Random rd = new Random();
  24. bu.Append(110000);
  25. int year = generateYear();
  26. bu.Append(year);
  27. int month = rd.Next(1, 12);
  28. if (month < 10)
  29. {
  30. bu.Append(0);
  31. }
  32. bu.Append(month);
  33. int[] days;
  34. if (isleapyear(year))
  35. {
  36. days = new int[12] { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  37. }
  38. else
  39. {
  40. days = new int[12] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  41. }
  42. int day = rd.Next(1, days[month]);
  43. if (day < 10)
  44. {
  45. bu.Append(0);
  46. }
  47. bu.Append(day);
  48. bu.Append(randomcode());
  49. int[] c = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
  50. char[] r = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };
  51. string convert = bu.ToString();
  52. int it = 0;
  53. int res = 0;
  54. // Console.WriteLine(res);
  55. while (it < 17)
  56. {
  57. res = res + (convert[it] - '0') * c[it];
  58. // Console.WriteLine("第"+it+"次,"+convert[it]+"乘以"+c[it]);
  59. // Console.WriteLine(res);
  60. it++;
  61. }
  62. int i = res % 11;
  63. bu.Append(r[i]);
  64. return bu.ToString();
  65. }
  66. //生成3位随机
  67. public static string randomcode()
  68. {
  69. StringBuilder bu = new StringBuilder();
  70. Random rd = new Random();
  71. int code = rd.Next(1, 999);
  72. if (code < 10)
  73. {
  74. bu.Append(00);
  75. }
  76. else if (code < 100)
  77. {
  78. bu.Append(0);
  79. }
  80. bu.Append(code);
  81. return bu.ToString();
  82. }
  83. public static bool isleapyear(int year)
  84. {
  85. if (year % 4 == 0)
  86. {
  87. if (year % 100 == 0 && year % 400 != 0)
  88. {
  89. return false;
  90. }
  91. return true;
  92. }
  93. return false;
  94. }
  95. }
  96. }