با سلام دویاره
برای رفع ایراد مورد درج علامت اسلش / یا نادیده گرفتن اون در رشته تاریخ میشه در تابع ShamsiDateValid با چک کردن تعداد اسلش ها تاریخ رو اعتبار سنجی کرد
تعداد گروه ها هم به 6 تا تقلیل پیدا کرد.البته عبارت قسمت سال بدون گروه هم مینونه باشه ولی بنظرم برای خوانائی بیشتر پترن باشه بهتره
سلام دوباره و روز خوش
اگر بخواهیم فقط با یک پترن چک کنیم گاهی پترن خیلی پیچیده میشه،
که هم نوشتنش سخت و زمانبر هست و هم نگهداریش و دیباگ کردنش.

ولی اگر از کد هم کمک بگیریم میونیم پروسه رو به بخش های کوچک تری بشکنیم
که هم نوشتنش و هم نگهداری و دیباگش ساده تر است ،
و چه بسا پرفورمنس بهتری هم داشته باشه.

در همین مثال میتونیم اول ساختار کلی تاریخ رو درست بودنش رو بررسی کنیم،
و بعد اگر ساختار درست بود ادامه بدیم.