سلام.
همون طور که مي دونيد اين موضوع يکي از موضوعات مطرحيه که اکثر Programmer هاي ايراني، با اون درگيرن. چيزي که مهمه زبان پياده سازي الگوريتم اين کاره، چون تا به حال افراد بسيار زيادي قبلاً الگوريتم اين کار رو پياده سازي کردند، Delphi, C++, Visual Basic, Javascript و ...
مايکروسافت هم که بالاخره با اضافه کردن تقويم Persian به .NET خيال همه ما رو راحت کرد.
چيزي که شايد فقدانش احساس مي شد، پياده سازي الگوريتم اين کار به T-SQL بود به طوري که تاريخ رو به درستي تبديل کنه و در محاسبه کبيسه اشتباه نکنه، که خودم شخصاً خيلي بهش نياز داشتم ولي تو اينترنت پيدا نکردم.
به همين دليل هفته گذشته يک تاپيک در همين مورد در اينجا ايجاد کردم (https://barnamenevis.org/showthread.php?t=238819) که اگه کسي چيزي سراغ داره معرفي کنه.
يکي دو نفر کُدهايي رو معرفي کردن اما وقتي اونها رو تست کردم ديدم هر کدوم به نوعي خطا دارن (جزئيات اين قضيه رو در تاپيکي که در بالا لينکشو دادم مي تونيد ببينيد)، درست مثل کُدي که خودم در بدو امر داشتم و در برنامه اي که الان با اون درگير هستم به کار برده بودم که به دليل خطا، باعث شد مجبور بشم برم دنبال الگوريتم درست اين کار.
در نهايت تصميم گرفتم خودم کُد اين کار رو به زبان T-SQL از يک برنامه VB 6.0 که 5 تقويم ميلادي/هجری شمسی/هجری قمری/رومی/عبری رو پشتیبانی می کرد بازنویسی کنم که واقعاً هم درست تبدیلات رو انجام می داد.
لينک زير مطلبيه که در اين خصوص در سايت شخصي خودم گذاشتم. اميدوارم اين اسکريپت براي شما هم مفيد باشه.
http://m-omrani.com/articles/?a=1
در صورتي که برنامه اي داريد که در اون تقويم هجري شمسی/قمری/میلادی رو با استفاده از UDF يا SPROC به هم تبدیل می کنید، حتماً صحت الگوريتمش رو چک کنيد، چون ممکنه يه روزي مثل من شما رو دچار مشکل کنه و حتي همون يک روز اختلاف در محاسبه هم براتون دردسرساز بشه.
براي بررسي صحت الگوريتم خودتون مي تونيد از سايت زير که وابسته به موسسه ژئوفيزيک دانشگاه تهرانه و تقويم هر سال رو تدوين مي کنه استفاده کنيد.
http://calendar.ut.ac.ir/Fa/
با آرزوي موفقيت.