Guest User

Untitled

a guest
Jan 17th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. static public bool ValidateParsianDate(string date)
  2. {
  3. bool status = true;
  4.  
  5. try
  6. {
  7. PersianCalendar persianCalendar = new PersianCalendar();
  8. CultureInfo persianCulture = new CultureInfo("fa-IR");
  9. DateTime persianDateTime = DateTime.ParseExact(date, "dd/MM/yyyy", persianCulture);
  10. }
  11. catch (Exception ex)
  12. {
  13. string msg = ex.Message;
  14. status = false;
  15. }
  16.  
  17. return status;
  18. }
  19.  
  20. static public bool ValidateParsianDate(string date)
  21. {
  22. bool status = true;
  23.  
  24. try
  25. {
  26. PersianCalendar persianCalendar = new PersianCalendar();
  27. var dateParts = date.Split(new char[] { '/' }).Select(d=> int.Parse(d)).ToArray();
  28. var date = persianCalendar.ToDateTime(dateParts[2], dateParts[1], dateParts[0], 0, 0,0,0, /*8 era of year here **/);
  29. }
  30. catch (Exception ex)
  31. {
  32. string msg = ex.Message;
  33. status = false;
  34. }
  35.  
  36. return status;
  37. }
  38.  
  39. public static bool IsValidDate(string date)
  40. {
  41. Regex pattern = new Regex(“^\d{4}/\d{2}/\d{2}$”);
  42. Regex[] arrPattern = new Regex[] {
  43. new Regex(“^\d{4}/\d{2}/\d{2}$”),
  44. new Regex(“^\d{4}/\d{2}/\d{1}$”),
  45. new Regex(“^\d{4}/\d{1}/\d{2}$”),
  46. new Regex(“^\d{4}/\d{1}/\d{1}$”),
  47. new Regex(“^\d{2}/\d{2}/\d{2}$”),
  48. new Regex(“^\d{2}/\d{2}/\d{1}$”),
  49. new Regex(“^\d{2}/\d{1}/\d{2}$”),
  50. new Regex(“^\d{2}/\d{1}/\d{1}”)
  51. };
  52. int kabise = 1387;
  53. int year = 0;
  54. int mounth = 0;
  55. int day = 0; bool flag = false;
  56. for (int i = 0; i < arrPattern.Length; i++)
  57. {
  58. if (arrPattern[i].IsMatch(date))
  59. flag = true;
  60. }
  61. if (flag == false) return flag;
  62. //جدا کننده تاریخ می تواند یکی از این کاراکترها باشد
  63. string[] splitDate = date.Split(‘/’,‘-’,‘:’);
  64. year = Convert.ToInt32(splitDate[0]);
  65. mounth = Convert.ToInt32(splitDate[1]);
  66. day = Convert.ToInt32(splitDate[2]);
  67. if (mounth > 12 || mounth <= 0)
  68. flag = false;
  69. else
  70. {
  71. if (mounth < 7)
  72. {
  73. if (day > 31)
  74. {
  75. flag = false;
  76. }
  77. }
  78. if (mounth == 12)
  79. {
  80. int t = (year – kabise) % 4;
  81. if ((year – kabise) % 4 == 0)
  82. {
  83. if (day >= 31)
  84. flag = false;
  85. }
  86. else if (day >= 30)
  87. flag = false;
  88. }
  89. else
  90. {
  91. if (day > 30)
  92. flag = false;
  93. }
  94. }
  95. return flag;
  96. }
Add Comment
Please, Sign In to add comment