وبلاگ شخصی آقای محمد مهدی مسجدیان
درباره
اطلاعات تماس
موضوعات
آرشیو مطالب
تبدیل تاریخ میلادی به شمسی در SQL
۱۳۹۴/۱۰/۰۶
۱۵:۴۹
محمدمهدی مسجدیان جزی
۳۷۰
۰

با سلام

قصد دارم الگوریتمی رو معرفی کنم که میتونم به جد بگم درست ترین الگوریتم محاسبه ی سال میلادی به شمسی هست . چون الگوریتم های دیگه رو خودم توی اینترنت پیدا کرده بودم و با تست روی اون ها متوجه شدم کامل و درست نیستن اما این الگوریتم رو خیلی تست کردم و حتی یه جواب اشتتباه نداد و البته کد SQL اون رو هم نوشتم و اینجا آپلود کردم.

خوب یه توضیح کلی راجع به الگوریتم میدم و بقیه با خودتون . چون کد واقعا ساده و واضح هست .

در ابتدا ما تاریخ میلادی را دریافت کرده و آن را به وسیله ی تابع Convert که یکی از توابع SQL هست به تعداد روز های آن سال از سال مبدا میلادی که به صورت پیشفرض 1900/1/1 هست محاسبه و با کسر تفاوت یا فاصله ی آغاز سال میلادی و شمسی که 78 هست ، تعداد روزهای گذشته از ابتدای سال شمسی جاری را بدست میاوریم .

از طریق فرمول  محاسبه ی سال کبیسه از روی روز های گذشته که خودم هم با کلی Search و وقت خرج کردن پیداش کردم و با بقیه ی الگوریتم هایی که موجود هستن متفاوت هست ، سال شمسی مورد نظر رو با در نظر گرفتن سال های کبیسه محاسبه می کنیم.لازم به ذکر هست که به دلیل این که سال کبیسه هم در میلادی و هم در شمسی باید در نظر گرفته بشه و این که در بازه ی زیاد این تفکر که روز های میلادی و شمسی در تمام سال ها با هم منطبق هستن ، غلط محض است ، الگوریتم های ساده و عام که موجود هستن ، درست عمل نمیکنن و قابل اعتماد نیستن.

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

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

http://blog.ustm.ir/CPanel/WeblogFiles/91125627/SQLQuery1.sql

http://blog.ustm.ir/CPanel/WeblogFiles/91125627/SQLQuery2.sql

http://blog.ustm.ir/CPanel/WeblogFiles/91125627/%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87.png

 

ارسال نظر جدید

عنوان
نظر شما
نام شما
پست الکترونیک
آدرس وب شخص
تمامی حقوق این سامانه برای دانشگاه علم و فناوری مازندران محفوظ است
سامانه وبلاگ ویهان
محصول مشترک گروه شرکت های نرم افزاری ویهان و دانشگاه علم و فناوری مازندران
نسخه ۱.۰