View Full Version : بدست آوردن روز تولد (شنبه تا جمعه) در تاريخ شمسي و قمري
parastoo_zamani
سه شنبه 29 بهمن 1387, 16:24 عصر
با سلام
من سورس كدي مي خواستم كه بشه باهاش روز تولد افراد رو ( مثلا شنبه ، يكشنبه و ... )
هم در تاريخ شمسي و هم در تاريخ قمري بدست آورد .
يه سورس دلفي پيدا كردم كه همين كار رو انجام ميده ولي نمي دونم چه جوري ازش استفاده كنم ( تو لينك دانلودش نوشته بود با دلفي 7 نوشته شده )
لينك هاي دانلود :
1 - http://www.asiapardaz.com/downloads/Date2Date_V1059.rar
يا
2 - http://rapidshare.com/files/201468234/Date2Date_V1059.rar.html
يا
3 - http://www.4shared.com/file/89038721/d5edcabd/Date2Date_V1059.html
اگه كسي از دوستان بتونه من رو راهنمايي كنه بسيار ممنون ميشم .
با تشكر از دوستان عزيز .
جواد ملاولی
سه شنبه 29 بهمن 1387, 18:12 عصر
من سورس كدي مي خواستم كه بشه باهاش روز تولد افراد رو ( مثلا شنبه ، يكشنبه و ... )هم در تاريخ شمسي و هم در تاريخ قمري بدست آورد .
سلام. متوجه منظورتون نشدم. یه کم بیشتر توضیح بدین.
merced
سه شنبه 29 بهمن 1387, 21:25 عصر
چك كن
http://xcalendar.sourceforge.net
parastoo_zamani
چهارشنبه 30 بهمن 1387, 12:08 عصر
سلام. متوجه منظورتون نشدم. یه کم بیشتر توضیح بدین.
منظورم اينه كه با دادن تاريخ تولد مثلا 01/02/1359 برنامه بتونه روز مربوط به ايت تاريخ كه دوشنبه است رو پيدا كنه ، برنامه اي هم كه لينكش رو در بالا قرار دادم دقيقا اين كار رو مي كنه ولي من نمي تونم ازش تو دلفي استفاده كنم .
Zahed2008
چهارشنبه 30 بهمن 1387, 17:16 عصر
سلام، چرا خودت نمی نویسی. این خیلی راحته. 1 فروردین یه سال بعد از یه سال کبیسه رو به عنوان مبداء خودت در نظر می گیری. مثلاً اگه 1 فروردین اون سال با دوشنبه شروع بشه بهش کد 1 می دی و سه شنبه کد 2 و همین طور تا شنبه که کد 6 و یکشنبه که کد 0 می گیره. (باقیمانده تقسیم بر 7). حال مقدار روز باقیمانده از این مبداء رو حساب می کنی. مثل:
تاریخ مبداء : 1/1/1370
تاریخ مقصد : 11/5/1375
محاسبه: 11+5*31+(1370-1375) = Days
(باقیمانده تقسیم بر 7) code = Days mod 7
فقط باید برای سالهای کبیسه چهار ساله : Days =Days+(1375-1370) mod 4
فقط باید برای سالهای کبیسه پنج ساله : Days =Days+(1375-1370) mod 16
البته لازم به توضیح نیست که 6 ماه اول 31 روزه و 5 ماه دوم 30 روزه و اسفند 29 روزه است.
امیدوارم توضیحاتم کافی بوده باشه. موفق باشید.
جواد ملاولی
چهارشنبه 30 بهمن 1387, 21:37 عصر
منظورم اينه كه با دادن تاريخ تولد مثلا 01/02/1359 برنامه بتونه روز مربوط به ايت تاريخ كه دوشنبه است رو پيدا كنه
این کامپوننت XCalender که جناب merced لینکش رو گذاشتن دقیقاً همون چیزیه که شما می خوای.
برنامه اي هم كه لينكش رو در بالا قرار دادم دقيقا اين كار رو مي كنه ولي من نمي تونم ازش تو دلفي استفاده كنم .
من چون سرعتم پایینه نتونستم این برنامه رو دانلود کنم ولی همون طور که گفتم XCalender کارت رو به طور کامل راه می اندازه.
yalanemail
پنج شنبه 01 اسفند 1387, 12:51 عصر
سلام، چرا خودت نمی نویسی. این خیلی راحته. 1 فروردین یه سال بعد از یه سال کبیسه رو به عنوان مبداء خودت در نظر می گیری. مثلاً اگه 1 فروردین اون سال با دوشنبه شروع بشه بهش کد 1 می دی و سه شنبه کد 2 و همین طور تا شنبه که کد 6 و یکشنبه که کد 0 می گیره. (باقیمانده تقسیم بر 7). حال مقدار روز باقیمانده از این مبداء رو حساب می کنی. مثل:
تاریخ مبداء : 1/1/1370
تاریخ مقصد : 11/5/1375
محاسبه: 11+5*31+(1370-1375) = Days
(باقیمانده تقسیم بر 7) code = Days mod 7
فقط باید برای سالهای کبیسه چهار ساله : Days =Days+(1375-1370) mod 4
فقط باید برای سالهای کبیسه پنج ساله : Days =Days+(1375-1370) mod 16
البته لازم به توضیح نیست که 6 ماه اول 31 روزه و 5 ماه دوم 30 روزه و اسفند 29 روزه است.
امیدوارم توضیحاتم کافی بوده باشه. موفق باشید.
به خاطر توضيحات مفيدتان بسيار سپاسگذارم .:چشمک:
aminjo0o0on
چهارشنبه 25 آذر 1388, 09:13 صبح
سلام، چرا خودت نمی نویسی. این خیلی راحته. 1 فروردین یه سال بعد از یه سال کبیسه رو به عنوان مبداء خودت در نظر می گیری. مثلاً اگه 1 فروردین اون سال با دوشنبه شروع بشه بهش کد 1 می دی و سه شنبه کد 2 و همین طور تا شنبه که کد 6 و یکشنبه که کد 0 می گیره. (باقیمانده تقسیم بر 7). حال مقدار روز باقیمانده از این مبداء رو حساب می کنی. مثل:
تاریخ مبداء : 1/1/1370
تاریخ مقصد : 11/5/1375
محاسبه: 11+5*31+(1370-1375) = Days
(باقیمانده تقسیم بر 7) code = Days mod 7
فقط باید برای سالهای کبیسه چهار ساله : Days =Days+(1375-1370) mod 4
فقط باید برای سالهای کبیسه پنج ساله : Days =Days+(1375-1370) mod 16
البته لازم به توضیح نیست که 6 ماه اول 31 روزه و 5 ماه دوم 30 روزه و اسفند 29 روزه است.
امیدوارم توضیحاتم کافی بوده باشه. موفق باشید.
با عرض سلام و خسته نباشید
گلم یه بخشی از نوشته شما درسته و فهمیدم. اما یه بخشی از اون را متوجه نشدم. خواهشاً بیشتر توضیح بدین از جمله یال کبسیه اون را ممنون میشوم.
Zahed2008
پنج شنبه 26 آذر 1388, 16:48 عصر
سلام دوست عزيز، اصول کار بر اساس باقيمانده بر 7 هستش.
در سالهاي معمولي:
code = 365 mod 7 = 1
اين يعني اينکه به ازاي هر سال فقط يه روز تغيير در روزهاي هفته داريم(يعني اگه امسال اول فروردين دوشنبه باشه، سال بعد، اول فروردين سه شنبه خواهد بود.)
اين قانون هميشه درسته فقط اشکال زماني پيش مياد که سال کبيسه داشته باشيم، يعني:
code = 366 mod 7 = 2
حالا اگه هر 4 سال يه بار سال کبيسه چهار ساله و هر 21 سال يه بار کبيسه 5 ساله داشته باشيم، بايد يه دونه به کد بدست اومده اضافه کنيم و دوباره باقيمانده رو محاسبه کنيم.
کد صحیح رو بصورت زیر می نویسم(کد قبلی زیاد دقیق نبود):
تاريخ مبداء : 1/1/1370 (روز چهارشنبه)
تاريخ مقصد : 11/9/1388
محاسبه: 11+30*2+6*31+(1370-1388) = Days
n = (1388-1370-1) div 21 (تقسيم عدد صحیح بر 21)
m = (1388-1370-1-n) div 4ِ (تقسيم عدد صحیح بر 4 با کسر کبیسه پنج ساله)
(باقيمانده تقسيم بر 7) code = (Days+m+n) mod 7
code = 2 : يعني که تاريخ مقصد برابر روز پنج شنبه هستش.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.