PDA

View Full Version : بدست آوردن روز و ماه و سال



matinebi
سه شنبه 13 مرداد 1388, 21:38 عصر
چطور میشه روز و ماه و سال رو به صورت جداگانه بدست آورد
مثل تابع
timetostr(time)
با تشکر

Hsimple11
سه شنبه 13 مرداد 1388, 21:46 عصر
با توابع DayOf و MonthOf و YearOf.

matinebi
سه شنبه 13 مرداد 1388, 21:57 عصر
میشه مثال بزنی چون من نتونستم استفاده کنم

Hsimple11
سه شنبه 13 مرداد 1388, 22:13 عصر
متغیر از نوع DateTime میگیرن دیگه. همه جوری میتونی بهش بدی. مثلا


DayOf(Today)

سيد مجتبي هاشمي
چهارشنبه 14 مرداد 1388, 11:54 صبح
با استفاده از کامپوننت تقویم شمسی که آقای خرسندی طراحی کردند و توابع زیادی برای کار با تاریخ داره هم میتونی این کار رو انجام بدی. توی سایت عبارت "تقویم شمسی" رو جستجو کن و بعد میتونی دانلودش کنی.

mshadi
چهارشنبه 21 مرداد 1388, 04:04 صبح
سلام دوستان
من یک مشکل بزرگ دارم امیدوارم که بتونید راهنمایی کنید
من یک برنامه با زبان دلفی نوشتم در این برنامه دو تا تاریخ شمسی را دریافت میکند آن وقت باید بتواند تفاضل این دو تاریخ را به تفکیک براساس روز ماه سال را بیان کند خودم میتوانم تعداد سال را بدست آورم اما روز و ماه را نه خواهش میکنم منو راهنمایی کنید

mshadi
چهارشنبه 21 مرداد 1388, 04:15 صبح
دوستان بزارید مشکلم را کاملتر توضیح بدم
من یک برنامه کارگزینی با دلفی نوشتم که این برنامه تاریخ ورود شخص به سازمان و تاریخ جاری را دریافت می کند آن گاه باید سنوات آن را به تفکیک سال و ماه و روز اعلان نماید که من نمیدونم باید چیکار کنم با کد نویسی تونستم تعداد سال را حساب کنم اما ماه و روزش را نمیتونم بدست بیارم.
خواهش میکنم منو راهنمایی کنید

arsisman2006
چهارشنبه 21 مرداد 1388, 11:04 صبح
من اين مشكل با يه روش ساده حل كردم
1) تاريخهاي شمسي رو به ميلادي تبديل كن و در متغير از نوع TDatetime قرار بده
2) با استفاده از تابع DaysBetween تعداد روزهاي فاصله مشخص ميشه. مقداري برگشتي تابع از نوع word

DaysBetween(D1,D2)

بقيش ديگه كاري نداره

سيد مجتبي هاشمي
پنج شنبه 22 مرداد 1388, 12:38 عصر
شما با استفاده از همون کامپوننت تقویم شمسی که قبلا بهتون گفتم میتونید این کار رو انجام بدین. کامپوننت رو دانلود کنید. فایل راهنمای همراهش رو بخونید و ازش استفاده کنید. امیدوارم مشکلتون حل بشه. موفق باشید.

K.Mohammadreza
پنج شنبه 22 مرداد 1388, 17:01 عصر
با سلام به دوستان
البته جوابي که دوستمون دادند و گفته بودند تبديل به ميلادي و سپس استفاده از تابع DaysBetween بهترين راه حله ممکنه ولي تابع زير ميتونه روز و ماه و سال را به تفکيک بهتون بده




procedure FDateDecode(StrDate: string; var Y, M, D: Word);
var
slCString: TStringList;
begin
if Length(StrDate) = 0 then
Exit;
slCString := TStringList.Create;
slCString.Text := StringReplace(StrDate, '/', sLineBreak, [rfReplaceAll]);
Y := StrToInt(slCString.Strings[0]);
M := StrToInt(slCString.Strings[1]);
D := StrToInt(slCString.Strings[2]);
slCString.Free;
end;

mshadi
جمعه 23 مرداد 1388, 17:43 عصر
با سلام و تشکر از همه دوستانی که جواب دادند
ببینید تاریخ ورود شخص در یک ,maskedit هست و تاریخ امروز هم در maskedit دیگر حالا من میخوام این دو تا را با هم مقایسه کنم تعداد روز در یک edit تعداد سال در یک edit و تعداد ماه هم در یک edit دیگر لطفا با مثال توضیح بدید چطوری بدست بیارم .
مثلا اگر ورودی شخص 10/3/85 بوده و تاریخ امروز هم 23/5/88 جواب 3 سال و 2 ماه و 13 روز را هر کدام در edit مربوطه بنویسه .

arsisman2006
یک شنبه 25 مرداد 1388, 14:16 عصر
اگه نميخواي از كامپوننت تاريخ فارسي استفاده كني ؛ تنها راه ممكن همون تبديل به تاريخ سيستم TDateTime هستش
1) با استفاده از تابع تعداد روزها رو محاسبه كن
2) از سال شروع تا خاتمه با استفاده از تابع زير

Result := ((((LongInt(Year) + 38) * 31) mod 128) <= 30)

تعداد سال كبيسه رو بدست مياري (سال بصورت 13XX مقدار دهي كن)
3) از تعداد روزها تعداد سال كبيسه*366 رو كم كن
4) مانده رو با توجه به ماه تقسيم كن - ماه و روز بدست مياري

mshadi
یک شنبه 25 مرداد 1388, 17:54 عصر
آخه تمام مشکل من بخش 4 صحبتهای شماست که کدنویسیش رو بلد نیستم اگه ممکنه کدنویسی بخش 4 را عنوان کنید

mshadi
یک شنبه 25 مرداد 1388, 18:15 عصر
اگر ورودی 10/10/85 بود و تاریخ امروز 4/5/88 چطوری می تونم 2 سال و 6 ماه و 25 روز رو بدست بیارم
خواهش میکنم با کدنویسی توضیح بدید

phd_case
پنج شنبه 23 خرداد 1392, 14:03 عصر
سلام
برای بدست آوردن روز و ماه و سال در دلفی میتوان از تابع دیگری نیز استفاده کرد
FormatDateTime میباشد
در کد زیر سال

Label1.Caption:=FormatDateTime('yyyy', date);

در کد زیر ماه
Label1.Caption:=FormatDateTime('mm', date);

در کد زیر روز

Label1.Caption:=FormatDateTime('dd', date);
به دست می آید

یوسف زالی
پنج شنبه 23 خرداد 1392, 14:48 عصر
البته میلادی!
در امضای بنده می تونید راه دیگه ای رو ببینید.