PDA

View Full Version : سوال درباره توابع تبدیل تاریخ با دقت 5000 سال



Majid.Ebru
یک شنبه 17 اردیبهشت 1396, 18:43 عصر
سلام
3 تا سوال لطفاً جواب بدید :.
1- توی تابع "Date_IsValidDate" :نوشته شده : "((MM = 12) and (DD in [1..IfThen(Date_IsLeapYear(YY, dbSolar), 30, 29)])"یعنی چی؟؟ چرا if به then چسبیده؟؟؟......من نمی دونم این دستور چیه؟!اما جالبه برام ، کامپایلر هم ارور نگرفت؟!؟!؟!؟
2-چطور میشه روز هفته رو پیدا کرد؟توی کد نوشته شده "SolarDayOfWeek" اما هیچ کدی نداره؟؟
3-چطور میشه روز اول ماه رو پیدا کرد؟مثلن امروز اول اردیبهشت 96 هست و برابر جمعه هست ، حالا روز اول یه ماه بریم عقب(فروردین) یا بریم جلو(خرداد) ، چند شنبه میشه؟
-البته من با لازاروس کار می کنم و مشکلی با کد هم ندارم

Ananas
یک شنبه 17 اردیبهشت 1396, 19:02 عصر
سلام.
در مورد سوال اول IfThen یک تابع هست که سه تا ورودی میگیره. ورودی اول یک شرطه که اگر برقرار باشه ورودی دوم رو بر می گردونه وگرنه ورودی سوم رو. و این که DD داخل رنج 1 تا 29 (یا 30 بر حسب همون IfThen) رو چک میکنه با این دستور:

DD in [1..IfThen(Date_IsLeapYear(YY, dbSolar), 30, 29)]

Majid.Ebru
دوشنبه 18 اردیبهشت 1396, 12:11 عصر
در مورد سوالهای 2 و3 می تونید راهنمایی کنید.ممنون

Majid.Ebru
جمعه 22 اردیبهشت 1396, 12:58 عصر
سلام
لطفن کمک کنید؟ کسی برای سوال 2و 3 راهنمایی می تونه کنه..............ممنون میشم.متشکرم

Ananas
شنبه 23 اردیبهشت 1396, 02:21 صبح
سلام.
ببینید تو دلفی توابعی که ورودی ندارن رو میشه بدون گذاشتن پرانتز بازو بسته نوشت. مثلا: SolarDayOfWeek ... لازم نیست بنویسید
SolarDayOfWeek()
در مورد بدست آوردن روزهای هفته هم با توجه به اینکه اون ماه ها چند روزه هستن میتونید با کمک عملگر mod که بین دو عدد گذاشته میشه و حاصل اون باقیمانده ی تقسیم دو عدد به هم هست، روز هفته رو بدست بیارید. کافیه فاصله ی روزهارو بدست بیارید و باقیمانده به تقسیم 7 روز رو بدست بیارید. مثلا فرض کنید تعداد روزهای بین یک تاریخ و تاریخ دیگه رو داریم و اون روز 4 شنبه هست و میخایم بفهمیم تاریخ قبل، چه روزی از هفته هست:







(day_num + 4) % 7;