# Native Code > برنامه نویسی در Delphi > کامپوننت های سایر شرکت ها، و توسعه کامپوننت >  چگونگی محاسبه فاصله زمانی بین دو تاریخ

## jandaghian

با عرض خسته نباشید و آرزوی موفقیت برای شما مثلا میخواهم بدانم از 22/06/84 ساعت 23:56 تا    24/06/84 ساعت 06:08 چند ساعت و چند دقیقه است؟
اگه کمکم کنید ممنون میشم.

----------


## vcldeveloper

در یونیت DateUtils توابع مختلفی برای کار با تاریخ و ساعت وجود داره، از جمله توابعی مثل DaysBetween یا HoursBetween که فاصله بین دو تاریخ را بصورت روز، ساعت و... بر می گردونند. البته برای استفاده از این توابع باید اول تاریخ شمسی را به میلادی تبدیل کنید.

----------


## jandaghian

از راهنماییتون ممنون ولی با توجه به اون چرا این تکه کد بعد از اینکه DateUtils را در لیست uses اضافه کردم کار نمیکنه ؟ و جواب 12:00:00ق.ظ. میدهد؟

procedure TloginF.BitBtn3Click(Sender: TObject);
var
  TimeNow, TimeThen: TDateTime;


begin
  TimeThen := StrToTime('02:00:00');
  TimeNow := StrToTime('01:00:00');
  ShowMessage(TimeToStr(MinutesBetween(timethen,time  now)));
end;

----------


## vcldeveloper

برای اینکه خروجی تابع MinutesBetween از نوع Int64 هست، نه TDateTime.
شما باید می نوشتید:

ShowMessage(IntToStr(MinutesBetween(TimeNow,TimeTh  en)));

----------


## jandaghian

ممنون از لطفتون

----------


## Dolphin

دمت گرم ولی بازم برای تاریخ شمسی گیر میده

----------


## بهمن بهار

با عرض سلام واحترام 
یک تابع بنویس خیال خودت را راحت کن چون تاریخ مثلا  1384 در دلفی یعنی 1384 میلادی پس خطا میگیرد
یک تابع بنویس که تعداد روزها و تعداد روزی را از یک تاریخ معین (حداقل تاریخ مورد نیاز خودت مثل 1370 ) گذشته را بر گرداند میتوانی ساعت و دقیقه را هم به آن اضافه کنی 
یعنی با گرفتن تاریخ و ساعت مقدار بازگشتی از تابع تعداد دقایق یا ساعات و یا روزهای گذشته از آن تاریخ باشد
(البته برای تعدا دقایق ممکن است عدد بزرگی شود ) روز بهتر است 
بعد این دو تاریخ و ساعت را از هم کم کنی 
این تابع بخصوص برای روز خیلی جاهای دیگر هم به درد میخورد برای من که خیلی مفید بوده

----------

