PDA

View Full Version : تاریخ تولد



fahimeh_qqq
جمعه 13 اردیبهشت 1387, 23:02 عصر
سلام
من الگوریتمی می خوام که تاریخ تولد فرد رو بگیره و روز تولد رو در سال جاری تعیین کنه مثلا اگر تاریخ تولد فرد 1366/9/12 باشه بگه در سال 1387 که سال جاری است تولدش در چه روزیه؟
هر کسی بلده کمک کنه !
ممنون

whitehat
جمعه 13 اردیبهشت 1387, 23:18 عصر
عنوان موضوع اصلاح شد.
آیا روز تولد در سالهای مختلف عوض میشه ؟!

fahimeh_qqq
جمعه 13 اردیبهشت 1387, 23:54 عصر
بله مثلا تاریخ تولد 1366/9/12 در سال 1386 روز دوشنبه بوده ولی در سال 1387 روز سه شنبه می شه ..در سال 1385 هم روز یکشنبه بوده ....
در سال 1384 شنبه بوده ولی در سال 1383 می شه پنج شنبه چون سال کبیسه بوده حالا کی می تونه الگوریتم اینو پیدا کنه؟

hafizi
شنبه 14 اردیبهشت 1387, 08:29 صبح
با سلام
ابتدا باقیمانده تقسیم سال بر 4 رو بدست بیار، بعد این عدد رو از سال کم کن و حاصل رو بر 4
(فرض کنیم اولین سال کبیسه در تاریخ 1/1/4 اتفاق افتاده است)
تقسیم کن تا تعداد سالهای کبیسه بدست بیاد.
تعداد سالهای کبیسه رو از سال کم کن تا تعداد سالهای معمولی بدست بیاد
تعداد سالهای کبیسه رو در 366 ضرب کن
تعداد سالهای معمولی رو در 365 ضرب کن
از ماه تولد یکی کم کن
چون 6 ماه اول سال 31 روز و 6 ماه دوم سال 30 روز است 6 ماه اول رو در 31 و 6 ماه دوم رو در 31 ضرب کن
حاصل جمع این اعداد با روز تولد را بدست بیار
باقیمانده عدد حاصل بر 7 رو بدست بیار
فرض کنیم روز 1/1/1 شنبه بوده است در اینصورت اگر باقیمانده 1 بود شنبه، 2 بود یکشنبه، و ... 0 بود جمعه است.
اگر هم 1/1/1 مثلا سه شنبه نباشد اگر باقیمانده 1 بود سه شنبه، اگر 2 بود چهارشنبه، و... اگر 0 بود دوشنبه است.

بنابراین باید دو چیز را قبل از حل مسئله بدانیم اول اینکه اولین سال کبیسه در چه تاریخی اتفاق افتاده است و دوم اینکه تاریخ 1/1/1 چند شنبه بوده است.
با نوشتن یک برنامه می توانید این دو مورد رو بدست بیارید یا میتونید از طراح مسئله بپرسید.

fahimeh_qqq
شنبه 14 اردیبهشت 1387, 09:07 صبح
حالا می شه توضیح بدید این دو موردی که ذکر کردید رو از کجا بدست بیارم؟
اولین سال کبیسه و تاریخ 1/1/1 ؟
ممنون

hafizi
شنبه 14 اردیبهشت 1387, 20:54 عصر
بدست آوردن تاریخ اولین سال کبیسه:
برای این کار باید اول تاریخ یک سال کبیسه رو بدونیم، مثلا فرض کنیم که سال 1360 یک سال کبیسه بوده است، سپس باقیمانده تقسیم 1360 را بر 4 بدست می آوریم، اگر صفز بود تاریخ اولین کبیسه 1/1/4بوده است ، اگر 1 بود تاریخ اولین کبیسه 1/1/1 بوده است اگر 2 بود تایخ اولین کبیسه 1/1/2 است و اگر 3 بود تاریخ اولین کبیسه 1/1/3 است.
من محاسبات بالا را بر فرض اینکه اولین سال کبیس 1/1/4 است انجام دادم ، فرض کنیم که اولین سال کبیسه در تاریخ 1/1/2 اتفاق افتاده است برای بدست آوردن تعداد سالهای کبیسه باید ابتدا از سال تولد مقدار 2 رو کم کنیم و خارج قسمت تقسیم عدد بدست آمده بر 4 رو بدست بیاوریم و به آن یک واحد اضافه کنیم تا تعداد سالهای کبیسه بدست آیند،اگر اولین سال کبیسه در تاریخ 1/1/3 اتفاق افتاده باشد از سال تولد ابتدا مقدار 3 رو کم می کنیم و بقیه مراحل که در مورد تاریخ 1/1/2 گفته شد رو انجام میدیم و اگر هم اولین سال کبیسه در تاریخ 1/1/1 اتفاق افتاده باشد ابتدا مقدار 1 رو کم می کنیم و بقیه مراحل رو مانند مراحل گفته شده در مورد تاریخ 1/1/2 انجام می دهیم.
بنابراین در صورتیکه تاریخ اولین سال کبیسه 1/1/4 نباشد باید اصلاحات بالا رو در الگوریتم انجام بدهید

1/1/1 چند شنیه است؟
ابتدا باید یک تارخ رو که میدونید چند شنبه است انتخاب کنید، مثلا امروز 14/2/1387 شنبه است، تعداد روزهای طی شده تا تاریخ 14/2/1387 رو با الگوریتمی که در مرحله قبل نوشته اید بدست بیارید( فرض کنیم 1250 روز می شود، البته این مقدار نیست) حاصل تقسیم این عدد بر 7 رو بدست بیارید اگر حاصل یک شد 1/1/1 شنبه است، اگر 2 شد جمعه است، اگر 3 شد پنج شنبه است و... اگر 0 شد یک شنبه است.


امیدوارم که گیج نشده باشید.
:لبخندساده::لبخندساده::لبخن ساده::لبخندساده::لبخندساده: :لبخندساده::لبخندساده::لبخن ساده:
if you think you can you can

hafizi
شنبه 14 اردیبهشت 1387, 20:56 عصر
بدست آوردن تاریخ اولین سال کبیسه:
برای این کار باید اول تاریخ یک سال کبیسه رو بدونیم، مثلا فرض کنیم که سال 1360 یک سال کبیسه بوده است، سپس باقیمانده تقسیم 1360 را بر 4 بدست می آوریم، اگر صفز بود تاریخ اولین کبیسه 1/1/4بوده است ، اگر 1 بود تاریخ اولین کبیسه 1/1/1 بوده است اگر 2 بود تایخ اولین کبیسه 1/1/2 است و اگر 3 بود تاریخ اولین کبیسه 1/1/3 است.
من محاسبات بالا را بر فرض اینکه اولین سال کبیس 1/1/4 است انجام دادم ، فرض کنیم که اولین سال کبیسه در تاریخ 1/1/2 اتفاق افتاده است برای بدست آوردن تعداد سالهای کبیسه باید ابتدا از سال تولد مقدار 2 رو کم کنیم و خارج قسمت تقسیم عدد بدست آمده بر 4 رو بدست بیاوریم و به آن یک واحد اضافه کنیم تا تعداد سالهای کبیسه بدست آیند،اگر اولین سال کبیسه در تاریخ 1/1/3 اتفاق افتاده باشد از سال تولد ابتدا مقدار 3 رو کم می کنیم و بقیه مراحل که در مورد تاریخ 1/1/2 گفته شد رو انجام میدیم و اگر هم اولین سال کبیسه در تاریخ 1/1/1 اتفاق افتاده باشد ابتدا مقدار 1 رو کم می کنیم و بقیه مراحل رو مانند مراحل گفته شده در مورد تاریخ 1/1/2 انجام می دهیم.
بنابراین در صورتیکه تاریخ اولین سال کبیسه 1/1/4 نباشد باید اصلاحات بالا رو در الگوریتم انجام بدهید

1/1/1 چند شنیه است؟
ابتدا باید یک تارخ رو که میدونید چند شنبه است انتخاب کنید، مثلا امروز 14/2/1387 شنبه است، تعداد روزهای طی شده تا تاریخ 14/2/1387 رو با الگوریتمی که در مرحله قبل نوشته اید بدست بیارید( فرض کنیم 1250 روز می شود، البته این مقدار نیست) حاصل تقسیم این عدد بر 7 رو بدست بیارید اگر حاصل یک شد 1/1/1 شنبه است، اگر 2 شد جمعه است، اگر 3 شد پنج شنبه است و... اگر 0 شد یک شنبه است.


امیدوارم که گیج نشده باشید.
:لبخندساده::لبخندساده::لبخن ساده::لبخندساده::لبخندساده: :لبخندساده::لبخندساده::لبخن ساده:
if you think you can you can