دسته
وبلاگهاي برگزيده
ارتباطات
آرشیو
آمار وبلاگ
تعداد بازدید : 629246
تعداد نوشته ها : 2594
تعداد نظرات : 825
Rss
طراح قالب
موسسه تبیان
روش تبدیل تاریخ میلادی به شمسی  
 
تبدیل تاریخ میلادی به شمسی، از آنجایی که اغلب سیستم‌های نرم‌افزاری و زبان‌های برنامه‌نویسی پشتیبانی از نوع تاریخ ما ندارند، همواره یکی از دغدغه‌های اصلی برنامه‌نویسی به‌شمار می‌آید. شیوه‌های مختلفی برای تبدیل یک تاریخ میلادی به شمسی وجود دارد و همچنین به‌لطف برنامه‌نویسان سخاوتمند ایرانی، نمونه کدهای زیادی به بیشتر زبان‌ها موجود است.


در ادامه شیوه‌ ساده‌ای از چگونگی تبدیل تاریخ میلادی به شمسی را شرح خواهیم داد.


برای تبدیل تاریخ میلادی به شمسی، ابتدا بهتر است روزهای نخست هر دو سال را بدانیم. سال‌ میلادی اول ژانویه، که تقریبا 10 دی ماه است، شروع می‌شود. بنابراین اولین روز فروردین ماه، 79 روز با آغاز سال میلادی فاصله داریم.

برای این‌که بفهمیم سال کبیسه است یا خیر، از این شرط استفاده می‌کنیم:‌

سال میلادی باید هم بر 100 و هم بر 400 بخش‌پذیر باشد؛ یا این‌که بر 100 بخش‌پذیر نباشد، ولی بر 4 بخش‌پذیر باشد. یعنی سال کبیسه داریم.

برای محاسبه تاریخ شمسی، کلا دو حالت بیشتر موجود نیست:

* ‌فاصله روز تا روز اول سالی که در آن قرار داریم، از 79 بیشتر است.

در این حالت، قطعا در ماه‌های بعدی فروردین قرار داریم. برای محاسبه تاریخ دقیق آن ماه کافی است در مرحله اول، 79 روزمان را کم کنیم که درست در اول فروردین بایستیم. حالا باید حساب شش ماه اول را از شش ماه دوم سوا کنیم. چون در شش ماه اول، شش ماه 31 روزه بدون کاستی وجود دارد. برای همین اگر روز ما کمتر از 31×6 بود، در شش ماه نخست سال است، و اگر نه، در شش‌ماه دوم سال. محاسبه روز و ماه آن ساده است و به‌عهده خودتان می‌گذاریم.

نکته: فاصله سال میلادی و سال شمسی 621 سال است.

* فاصله روز تا روز اول سالی که در آن قرار داریم، از 79 کمتر است. مساله اصلی اینجاست که اگر سال قبل میلادی کبیسه باشد، فاصله سال جاری تا اولین روز دی ماه، 11 روز است. یعنی یازدهم سال بعد، اول ژانویه است.

اگر باقیمانده تقسیم صفر بشود، روز را 30 محاسبه می‌کنیم و 9 ماه به خارج قسمت اضافه می‌کنیم. اگر باقیمانده صفر نشود، ماه شمسی را با 10 جمع می‌کنیم و باقیمانده، روز ماه است.

در زیر فهرستی از چندین سورس تبدیل تاریخ میلادی به شمسی وجود دارد:

http://www.farsiweb.info/jalali/jalali.phps

http://ebrahimkhodaei.blogfa.com/post-18.aspx

http://radcom.ir/weblog/fatemeh/archive/2005/04/17/244.aspx
بازیاب
دسته ها : خبر - علمی
شنبه جهاردهم 6 1388
X