الگوریتم تبدیل تاریخ میلادی به تاریخ شمسی
الگوریتم تبدیل تاریخ میلادی به تاریخ شمسی : تبدیل تاریخ میلادی به شمسی بسیار راحتتر از تبدیل تاریخ شمسی به میلادی است.
برای نوشتن این الگوریتم به اختلاف روزهای میان اولین روز سال میلادی و اولین روز سال شمسی نیاز داریم که این اختلاف روز(در صورتی که سال کبیسه باشد یا نباشد) “۷۹″ روز است.
برای تشخیص کبیسه بودن یا نبودن سال از روش زیر استفاده می کنیم: اگر سال داده شده بر۱۰۰و۴۰۰ بخشپذیر باشد” یا بر” ۱۰۰ بخشپذیر نباشد بر ۴ بخشپذیر باشد” آنگاه سال کبیسه است، در غیر این صورت سال کبیسه نیست. با توجه به کبیسه بودن یا کبیسه نبودن سال مشخص می کنیم که در کدامین روز سال میلادی قرار داریم.
دو حالت پیش می آید:
* روزی که در آن قرار داریم از ۷۹ بیشتر است به این معنی است که در ماههای بعد از فروردین قرار داریم.
حال باید مشخص کنیم که در ۶ ماه اول سال شمسی قرار داریم یا در ۶ ماه دوم سال قرار داریم، برای اینکار ابتدا ۷۹ روز از تعداد روزها کم می کنیم تا در اول فروردین قرار بگیریم حال اگر تعداد روزها از “۱۸۶″(۳۱*۶) کمتر باشد یعنی در ۶ ماه اول سال شمسی قرار داریم در غیر اینصورت در ۶ ماه دوم قرار داریم.
1. اگر در ۶ ماه اول سال قرار گرفته باشیم :تعداد روزها را بر “۳۱″ تقسیم می کنیم(۶ ماه اول در سال شمسی ۳۱ روزه است.) اگر باقیمانده این تقسیم صفر شد خارج قسمت تقسیم برابر با ماه شمسی می شود و روز شمسی برابر با ۳۱ می شود. اگر باقیمانده صفر نشود ماه شمسی برابر با خارج قسمت باضافه یک می شود و روز شمسی همان باقیمانده است. 2. اگر در ۶ ماه دوم سالقرار گرفته باشیم : “۱۸۶″ روز از تعداد روزها کم می کنیم و آن را بر “۳۰″ تقسیم می کنیم . اگرباقیمانده این تقسیم صفر شد خارج قسمت تقسیم باضافه”۶″ برابر با ماه شمسی می شودو روز شمسی برابر با۳۰ می شود. اگر باقیمانده صفر نشود ماه شمسی برابر با خارج قسمت باضافه”۷″ می شودو روز شمسی همان باقیمانده است.
سال شمسی از تفاضل سال میلادی با”۶۲۱″ بدست می آید.
* روزی که در آن قرار داریم کمتر از”۷۹″است که این به این معنی است که درروزهایی بین اولین روزسال میلادی تا اولین روز شمسی (ماههای دی ،بهمن و اسفند)قرار داریم.
اختلاف روز بین اولین روز سال میلادی داده شده و اولین روز دی ماه در سال شمسی را در نظر می گیریم که این اختلاف برای سال کبیسه”۱۱″ و برای غیر کبیسه “۱۰″ است.*دقت کنید که در این الگوریتم برای مشخص کردن این اختلاف باید سال قبل از سال داده شده را در نظر بگیریم زیرا سال قبل بر روی اولین روز سال میلادی تاثیر می گزارد.* اختلاف روز با تعداد روز محاسبه شده جمع می کنیم ، آن را بر”۳۰″ تقسیم می کنیم(۳ ماه آخر سال شمسی ۳۰ روزه است.). اگر باقیمانده این تقسیم صفر شود خارج قسمت تقسیم باضافه”۹″ برابر با ماه شمسی می شودو روز شمسی برابر با”۳۰″ می شود. اگر باقیمانده صفر نشود ماه شمسی برابر با خارج قسمت باضافه”۱۰″می شودو روز شمسی همان باقیمانده است.
در این حالت سال شمسی از تفاضل سال میلادی با”۶۲۲″ بدست می آید.(زیرا در سال قبل قرار داریم.)
پیاده سازی الگوریتم به زبان سی
=====================
تبدیل تاریخ ها ی شمسی و میلادی به یکدیگر
تبدیل تاریخ میلادی به تاریخ شمسی
حالا کد زیر رو تو قسمت جنرال فرمتون کپی کنید :
حالا برنامه رو اجرا کنید.
فیلم آموزشی مرتبط – روی لینک زیر کلیک کنید
سلام و عرض ادب آیا کدی جهت تبدیل تاریخ میلادی به تاریخ قمری و الگوریتم آنرا میتوانم از شما تقاضا کنم ، با ویژوال بیسیک سپاسگزارم
سلام خسته نباشید این کدو به صورت جاوا اسکریپتیش ندارید؟
سلام. در فضای وب هرچه جستجو کردم پر بود از سورس کد هایی که تا یک تاریخ مشخص درست عمل میکردند و هیچ یک اصل قضیه یعنی الگوریتم را توضیح نمیدادند. اما الگوریتم شما را برای زمان های مختلف تست کردم و درست جواب داد. به علاوه توضیحات کامل باعث شد که در هر زبانی بتوان از این الگوریتم استفاده کرد. از شما و سخاوتتان صادقانه متشکرم.
دمتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتتت گررررررررررررررررررررررررررررررررررررم
من متولد 1/4/1328 هستم لطفا تاریخ تولدم را به میلادی محاسبه و اعلام نمایید. تشکر
سلام گرامی
Sunday, April 17, 1949 برابر است با یکشنبه، 1328/01/28
می تونید به این سایت مراجعه و انلاین حساب کنید http://www.time.ir/
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *
Current ye@r *
Leave this field empty
Copyright © 2010 Dlbook Team