ورود

View Full Version : بدست آوردن تاریخ جدید در دلفی



hassan p.b
شنبه 03 فروردین 1387, 19:05 عصر
دوستان راهنمایی فرمایید
چگونه می توان بر اساس تاریخ روز و ورودی کاربر مثلا 40 روز اینده و یا گذشته تاریخ و نام روز را در دلفی بدست اورد
با تشکر
حسن پوریوسف:گریه:

Amir_Safideh
شنبه 03 فروردین 1387, 20:30 عصر
خوب یه کم سوالت نا مفهوم بود ولی تا اونجا که من فهمیدم میخواهید که فاصله روزهای بین دو تاریخ رو بدست بیارید .


ShortDateFormat := 'yyyy/mm/dd';
if DaysBetween(StrToDate('2007/01/01'),StrToDate('2007/02/21')) >= 40 then
ShowMessage('40 days');

--------------
موفق باشید.

SYNDROME
شنبه 03 فروردین 1387, 21:10 عصر
دوستان راهنمایی فرمایید
چگونه می توان بر اساس تاریخ روز و ورودی کاربر مثلا 40 روز اینده و یا گذشته تاریخ و نام روز را در دلفی بدست اورد
با تشکر
حسن پوریوسف:گریه:
سوالتان کاملا نا مفهوم است.
اگر می خواهید مشخص کنید چه روزی از ایام هفته است می توانید DayOfWeek استفاده کنید.(شماره روز را بر می گرداند).
موفق باشید

Cave_Man
شنبه 03 فروردین 1387, 21:48 عصر
شما تاریخ رو وقتی فرمتش TDAteTime باشه میتونید با یه عدد جمع کنید و تاریخ اون روز رو بدست بیارید مثلا Date+40 تاریخ 40 روز آینده رو بهتون میده و Date+200 تاریخ 200 روز دیگه رو میده..

farhad110
دوشنبه 05 فروردین 1387, 10:39 صبح
سلام. فکر نمی کنم برای تاریخ های شمسی استفاده از این توابع جواب بده. 87/01/01 برای datetime معتبر هست؟اگر در این مورد هم توضیح بدید ممنون میشم

hassan p.b
دوشنبه 05 فروردین 1387, 12:42 عصر
ضمن سپاس فراوان از تمامی دوستان
منظورم بطور دقیق بدست آوردن تاریخ و نام روز است بدین ترتیب که تاریخ امروز را داریم حال می خواهیم بدانیم که 40 یا 80 روز دیگر تاریخ چیست و در چه روز ی خواهیم بود.
با تشکر
حسن پوریوسف

Cave_Man
دوشنبه 05 فروردین 1387, 14:45 عصر
دقیقا جواب شما در پست 4 داده شد تابع DayofWeek هم در پست 3 گفته شد
DayofWeek شماره روز هفته رو برمیگردونه البته فکر میکنم دوشنبه رو 1 برگرونه تا یکشنبه که 7 هست.
DayofTheMonth DayofTheYear توابع دیگه ای هستن که شماره روز در ماه و شماره روز در سال رو که عددی بین 1 تا 365 هست رو برمیگردونن.البته امتحان نکردم که این توابع در مورد تاریخ های شمسی صحیح باشند

babak_delphi
دوشنبه 05 فروردین 1387, 18:08 عصر
تاریخ شمسی رو به میلادی تبدیل کن
بعد با توابع موجود برای تاریخ هر چند روز که میخوای بهش اضافه کن(البته باید تاریخت رو به فرمت Date تبدیل کنی)
در نهایت تاریخ رو دوباره به شمسی تبدیل کن
من قبلا سورس تبدیل شمسی به میلادی و میلادی به شمسی رو تو سایت گذاشتم

vcldeveloper
سه شنبه 06 فروردین 1387, 02:27 صبح
بله برای تاریخ های پارسی هم مشکلی نیست
می تونید تاریخی مثل 87/02/30 رو آزمایش کنید تا متوجه بشید که این توابع برای تاریخ شمسی ساخته نشدند. برای استفاده از آنها باید تاریخ شمسی به میلادی تبدیل بشه. همون چیزی که در پست #9 گفته شد.

hassan p.b
چهارشنبه 07 فروردین 1387, 10:32 صبح
ضمن تشکر لطفا لینگ بدید
لطفا بیشتر و روشن تر بنویسید که چگونه تاریخ با توجه به 31 روزه بودن ماه ها و 12 ماهه بودن سال حاصل می شود
با تشکر
حسن پوریوسف

hassan p.b
چهارشنبه 07 فروردین 1387, 10:34 صبح
لطفا بیشتر و روشن تر بنویسید که چگونه تاریخ با توجه به 31 روزه بودن ماه ها و 12 ماهه بودن سال حاصل می شود
با تشکر
حسن پوریوسف

Amir_Safideh
چهارشنبه 07 فروردین 1387, 12:09 عصر
خوب توابعی که دوستان براتون نوشتن برای تاریخ میلادی طراحی شده و مطمئن باشید که تمام احتمالات برای روزهای هر ماه و ماه های هر سال در اونها رعایت شده و لازم نیست شما نگران تعداد روزهای هر ماه باشید . پس اگر از ماههای میلادی استفاده میکنید که هیچ ولی اگر از تاریخ شمسی استفاده میکنید اول تاریخ رو به میلادی تبدیل کنید و معادل تاریخ میلادی رو دراین توابع ببرید و جواب به دست اومده رو مجددا به تاریخ شمسی تبدیل کنید . حالا باز با همون توابع که دوستان براتون (DayofWeek) نوشتن میتونید بدست بیارید که این تاریخ چه روزی از هفته هست .

hassan p.b
جمعه 09 فروردین 1387, 18:11 عصر
با سلام
فعلا به نتیجه نرسیدیم
منظورم حصول به تاریخ جدید با استفاده از فقط عدد روز است البته با بدست آوردن تاریخ به شکل Tdate هم فقط تاریخ به این شکل جمع می شود402008-3-8
با تشکر
حسن پوریوسف

Amir_Safideh
جمعه 09 فروردین 1387, 20:10 عصر
البته با بدست آوردن تاریخ به شکل Tdate هم فقط تاریخ به این شکل جمع می شود402008-3-8

حتما یه جای کار داری اشتباه میکنی . شما این کد رو یه بار امتحان کنید چی میبینی ؟


ShowMessage(DateToStr(Date+200));

babak_delphi
جمعه 09 فروردین 1387, 21:23 عصر
http://barnamenevis.org/forum/showthread.php?t=21511