PDA

View Full Version : الگوریتم روزهای هفته در تاریخ شمسی



iran400
سه شنبه 14 آذر 1385, 15:30 عصر
با سلام

دنبال الگوریتم روزهای هفته در تاریخ شمسی می‌گردم
به فرض 23/7/1388 یا 17/4/1300 چند شنبه است؟



دوستانی که اطلاع دارند ممنون می‌شوم راهنمایی فرمایند.

raha_hakhamanesh
پنج شنبه 16 آذر 1385, 20:28 عصر
با سلام

برای حل این الگوریتم باید روز اول سال را دریافت کنید مثلا فرض می کنیم روز اول سال 80 شنبه است . هر تاریخی را که مد نظر است با تاریخ اول فروردین 80 مقایسه کرده و تعداد روز را به دست آورید مثلا 2/2/83 یعنی 2 سال تمام و 32 روز ( توجه شود ممکن است سال کبیسه باشد) جمع اینها می شه 2*365+32 یعنی 762روز خوب کارتمومه باقیمونده این عدد به 7 برابر فاصله روز بعد از شنبه است ( در این مثال 762%7=6 یعنی 6روز بعد از شنبه دقیقا جمعه)
موفق باشید

raha_hakhamanesh
پنج شنبه 16 آذر 1385, 20:30 عصر
توجه به سال کبیسه مهم است.
سالهایی کخ باثیمونده اون به 4 برابر صفر است سال کبیسه هستند

موفق باشید

problem
پنج شنبه 16 آذر 1385, 20:38 عصر
خیر این*طور نیست که سال*هایی که باقیمانده*اش به چهار برابر صفر باشد کبیسه باشند! تا سال ۱۳۷۰ این بود (برای چندین دوره متوالی این بود) اما کبیسه بعد از آن به جای ۱۳۷۴ در ۱۳۷۵ بود، و بعد ۱۳۷۹ و بعدی هم ۱۳۷۳ و بعدی هم ۱۳۸۷ خواهد بود.

iran400
پنج شنبه 16 آذر 1385, 23:52 عصر
سلام

با تشکر از راهنمایی شما دوستان


روش دیگری هم وجود دارد؟
یعنی فرمول


بنده 4 - 5 سال پیش فرمولش رو دیدم

ولی الان هرچی می‌گردم پیدا نمی‌کنم! ) :


شاید هم بنده اشتباه دیدم !!!

problem
جمعه 17 آذر 1385, 00:37 صبح
الگوریتم را نمی‌دانم، اما برای کد می‌شود از این استفاده کنید: لینک (http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=844e1a97-0e12-48d7-b2f9-d5884a9b1523)
زبان VB.Net است که به راحتی قابل درک است (احتمالاً) و روش هم کاملاً دقیق و عاری از اشتباه است. البته قبول دارم اگر عین این را بخواهید استفاده کنید، خوب نمی‌شود، چون این اول تاریخ شمسی را میلادی می‌کند بعد از خود GetDayOfWeek موجود برای میلادی استفاده می‌کند. اما شاید به شما ایده‌ای بدهد.

iran400
شنبه 25 آذر 1385, 01:28 صبح
سلام

یک نکته ای به نظرم رسید گفتم شاید جالب باشد

اگر در خاطر داشته باشید حدود 10 سال پیش جاسوئیچی‌هایی مد شده بود که همین کار را می‌کرد البته در یک بازة 30 ساله.
دوتا وروقه دایره ای فلزی روی هم بود.

یعنی شما روی هر تاریخی می‌رفته روز هفته آن را نشان می‌داد.