PDA

View Full Version : سوال: برنامه اي كه تاريخ را گرفته و بگه چند شنبه است ؟



H_r_m
سه شنبه 12 آبان 1388, 12:45 عصر
سلام دوستان
ديروز سوالي پرسيدم ولي الان كه ميام اصلا اثري ازش نيست .
ميخواستم با زبان سي برنامه اي بنويسم كه تاريخ را گرفته و بگه اون تاريخ چندشنبه است . اميدوارم بتونين كمكم كنيد .

kashaneh
سه شنبه 12 آبان 1388, 18:34 عصر
دوست عزیز شما ابتدا باید پس از گرفتن تاریخ، ببینید این تاریخ روز چندم سال است... برای مثال 1388/02/10 روز 41 ام سال می باشد (31 روز فروردین + 10 روز اردیبهشت)... حال برای اینکه ببینید این روز چند شنبه است باید به برنامه بفهمانید روز اول سال (امسال) چه روزی است...
برای مثال اگر 4 شنبه روز اول سال باشد، در نتیجه باقیمانده تقسیم روز چندم سال بر عدد 7 برای این روز عدد 1 می شود!؟ (کمی فکر کنید!)... پس هر عددی که تقسیم بر 7 شود و باقیمانده اش بشود عدد 1، آن روز 4 شنبه است (البته ما 4شنبه رو مثال زدیم و به این ترتیب می تونید تعمیم بدین به سایر روز ها که هر روزی روز شروع سال است باقیمانده تقسیم آن بر 7 می شود1)
حال برای روز 5 شنبه مثال ما که روز دوم سال است، باقیمانده تقسیم بر 7 می شود 2... پس هر روزی که باقیمانده اش بر 7 بشود 2، روز 5 شنبه است... حال همین روند را برای سایر روزهای باقیمانده ادامه دهید... در نهایت به این می رسید که :

باقیمانده تقسیم بر 7 اگر 1 شد می شود : 4شنبه
باقیمانده تقسیم بر 7 اگر 2 شد می شود : 5شنبه
باقیمانده تقسیم بر 7 اگر 3 شد می شود : جمعه
باقیمانده تقسیم بر 7 اگر 4 شد می شود : شنبه
باقیمانده تقسیم بر 7 اگر 5 شد می شود : 1شنبه
باقیمانده تقسیم بر 7 اگر 6 شد می شود : 2شنبه
باقیمانده تقسیم بر 7 اگر 0 شد می شود : سه شنبه

پیاده سازی این چندتا تقسیم و استفاده از Switch در زبان سی به عهده خودتون... موفق باشی

lidaline
سه شنبه 12 آبان 1388, 21:29 عصر
سلام دوستان
ديروز سوالي پرسيدم ولي الان كه ميام اصلا اثري ازش نيست .
ميخواستم با زبان سي برنامه اي بنويسم كه تاريخ را گرفته و بگه اون تاريخ چندشنبه است . اميدوارم بتونين كمكم كنيد .
باسلام
خوب من متوجه نشدم منظورتون چه تاریخیه شمسی میلادی یا هر چی ولی چون میلادی همه جا کاربرد داره میتونید با فرمول زیر پیدا کنید پرتغال فروش را
البته اول باید تاریخ و وارد کنید به صورت DD\MM\YYYY
DD:day=d
MM:month=m

2تا YY اول از سمت چپ قرن = c و2 تا YY بعدی یعنی آخری سال =y

m*26-2 / 10 +d +y +[y/4] + c/4 - (2*c) +2 MOD 7
z=1 (mon)
z=2 (tu)
z=3 (we)
z=4 (th)
z=5 (fr)
z=6 (sa)
z=0 (su)

H_r_m
چهارشنبه 13 آبان 1388, 08:55 صبح
دوست عزیز شما ابتدا باید پس از گرفتن تاریخ، ببینید این تاریخ روز چندم سال است... برای مثال 1388/02/10 روز 41 ام سال می باشد (31 روز فروردین + 10 روز اردیبهشت)... حال برای اینکه ببینید این روز چند شنبه است باید به برنامه بفهمانید روز اول سال (امسال) چه روزی است...
برای مثال اگر 4 شنبه روز اول سال باشد، در نتیجه باقیمانده تقسیم روز چندم سال بر عدد 7 برای این روز عدد 1 می شود!؟ (کمی فکر کنید!)... پس هر عددی که تقسیم بر 7 شود و باقیمانده اش بشود عدد 1، آن روز 4 شنبه است (البته ما 4شنبه رو مثال زدیم و به این ترتیب می تونید تعمیم بدین به سایر روز ها که هر روزی روز شروع سال است باقیمانده تقسیم آن بر 7 می شود1)
حال برای روز 5 شنبه مثال ما که روز دوم سال است، باقیمانده تقسیم بر 7 می شود 2... پس هر روزی که باقیمانده اش بر 7 بشود 2، روز 5 شنبه است... حال همین روند را برای سایر روزهای باقیمانده ادامه دهید... در نهایت به این می رسید که :

باقیمانده تقسیم بر 7 اگر 1 شد می شود : 4شنبه
باقیمانده تقسیم بر 7 اگر 2 شد می شود : 5شنبه
باقیمانده تقسیم بر 7 اگر 3 شد می شود : جمعه
باقیمانده تقسیم بر 7 اگر 4 شد می شود : شنبه
باقیمانده تقسیم بر 7 اگر 5 شد می شود : 1شنبه
باقیمانده تقسیم بر 7 اگر 6 شد می شود : 2شنبه
باقیمانده تقسیم بر 7 اگر 0 شد می شود : سه شنبه

پیاده سازی این چندتا تقسیم و استفاده از Switch در زبان سی به عهده خودتون... موفق باشی



ممنونم از لطفتون . برم ببينم چكار ميكنم . مشكلي داشتم كه ميدونم دارم مزاحم ميشم .
ضمنا تاريخ شمسي ميباشد .
با تشكر

kashaneh
پنج شنبه 14 آبان 1388, 22:19 عصر
ممنونم از لطفتون . برم ببينم چكار ميكنم . مشكلي داشتم كه ميدونم دارم مزاحم ميشم .
با تشكر

دوست عزیز شما قرار شد بری شروع کنی کد بنویسی نه اینکه درخواست کد بکنی! پس چی شد!؟... در کل زیاد مرسوم نیست اینجا کد کامل گذاشته بشه... موفق باشی

aminjo0o0on
دوشنبه 23 آذر 1388, 11:49 صبح
دوست عزیز شما ابتدا باید پس از گرفتن تاریخ، ببینید این تاریخ روز چندم سال است... برای مثال 1388/02/10 روز 41 ام سال می باشد (31 روز فروردین + 10 روز اردیبهشت)... حال برای اینکه ببینید این روز چند شنبه است باید به برنامه بفهمانید روز اول سال (امسال) چه روزی است...
برای مثال اگر 4 شنبه روز اول سال باشد، در نتیجه باقیمانده تقسیم روز چندم سال بر عدد 7 برای این روز عدد 1 می شود!؟ (کمی فکر کنید!)... پس هر عددی که تقسیم بر 7 شود و باقیمانده اش بشود عدد 1، آن روز 4 شنبه است (البته ما 4شنبه رو مثال زدیم و به این ترتیب می تونید تعمیم بدین به سایر روز ها که هر روزی روز شروع سال است باقیمانده تقسیم آن بر 7 می شود1)
حال برای روز 5 شنبه مثال ما که روز دوم سال است، باقیمانده تقسیم بر 7 می شود 2... پس هر روزی که باقیمانده اش بر 7 بشود 2، روز 5 شنبه است... حال همین روند را برای سایر روزهای باقیمانده ادامه دهید... در نهایت به این می رسید که :

باقیمانده تقسیم بر 7 اگر 1 شد می شود : 4شنبه
باقیمانده تقسیم بر 7 اگر 2 شد می شود : 5شنبه
باقیمانده تقسیم بر 7 اگر 3 شد می شود : جمعه
باقیمانده تقسیم بر 7 اگر 4 شد می شود : شنبه
باقیمانده تقسیم بر 7 اگر 5 شد می شود : 1شنبه
باقیمانده تقسیم بر 7 اگر 6 شد می شود : 2شنبه
باقیمانده تقسیم بر 7 اگر 0 شد می شود : سه شنبه

پیاده سازی این چندتا تقسیم و استفاده از Switch در زبان سی به عهده خودتون... موفق باشی

با عرض سلام و خسته نباشید
گلم آیا سال کبیسه هم تاثیر بر محاسبه دارد؟
اگر دارد چطور محاسبه کنیم .مثلاً یال 3 وم هجری سال کبیسه است.و اولین روز همان سال شنبه است.
ممنون میشوم سریع جواب بدهید.

aminjo0o0on
سه شنبه 24 آذر 1388, 11:35 صبح
با عرض سلام و خسته نباشید
گلم آیا سال کبیسه هم تاثیر بر محاسبه دارد؟
اگر دارد چطور محاسبه کنیم .مثلاً یال 3 وم هجری سال کبیسه است.و اولین روز همان سال شنبه است.
ممنون میشوم سریع جواب بدهید.


نکنه تو این انجمن به این بزرگی کسی بلد نیست؟ اجب