كيف استخرج فارق التوقيت بين وقتي في دلفي
#1
السلام عليكم ورحمة الله وبركاته

كيف استخرج فارق التوقيت بين وقتين او كيف اطرح وقت من وقت
مثال دخلت الساعة 7.30 وخرجت الساعة 8.10 مجموع الوقت 40 دقيقة أو 7.30 -9.50 =2.20
كيف طريقة الحساب بالدلفي او ماهي العملية لاستخراج الناتج ؟
الرد
#2
وعليكم السلام اخي

تعامل تماما كما لو انك تتعامل مع اعداد و سلسلة حرفية وفي مكان inttostr استعمل Timetostr

مثال : نفرض ان Edit1 يحمل وقت الدخول 08:00 و Edit2 يحمل وقت الخروج 12:00
ونريد عرض الفارق في Edit3 نكتب في الزر

كود :
Edit3.Text:=TimeToStr(StrToTime(Edit2.Text)-StrToTime(Edit1.Text))

بالتوفيق
وتعاونوا على البر و التقوى ، ولا تعاونوا على الاثم والعدوان
الرد
#3
الله يعطيك العافيه فيه خطاء

7:30
8:10
12:40:00

المفروض يكون الرقم 40 هل المشكلة من صباحا

وهل يمكن استخدام . مع : للفصل بين الساعة والدقيقة

وشكراً لك
الرد
#4
اعاني من نغس المشكل اريــــــد ان احسب اقل وقت ( الصلاة المقبلة )
http://www.delphi4arab.net/forum/showpos...stcount=10
استخدمت فنكسيون ولاكن فيها مشكلة
PHP كود :
function Find_Min(Arr: array of TDateTime): TDateTime; 
var 
  
i : Integer; M :TDateTime; 
begin 
  M
:=Arr[0]; 
  for 
i:=0 to 5 do 
if 
Arr[i]<M then Result:=Arr[i]; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
i:integer; 
tm:Array[0..5] of TDateTime; 
begin 
 
for i := 0 to 5 do  begin 
  tm
[i]:= Time-strtotime(st[i]); 
end; 
  
showmessage(timetostr( Find_Min(tm))) 
end; 

وهدفي من كل هذا : التنبيه للوقت الصلاة مثلا بقي 10 دقائق لصلاة الظهر ..
الرد
#5
قديم الشوق كتب :المفروض يكون الرقم 40 هل المشكلة من صباحا

نعم اخي مشكلتك في تنسيق الصباح والمساء
اي انك تستعمل نضام الوقت في حاسوبك 12سا
يمكنك من الاعدادات ان تضبطه على 24
او
تستطيع ان تكتب مباشرتا في 7:30AM في Edit
وتعاونوا على البر و التقوى ، ولا تعاونوا على الاثم والعدوان
الرد
#6
ماظبط معي فيه مشكلة :confused: الملف بالمرفقات

مافيه طريقة اضع am and pm في CheckBox1

و احدد الوضع

وجزاك الله خيراً


الملفات المرفقة
.rar   ampm.rar (الحجم : 2.72 ك ب / التحميلات : 46)
الرد
#7
السلام عليكم
هناك طرق مختلفة اذكر MinuteSpan من الوحدة DateUtils للحصول على الفرق بين وقتين بالدقائق
شيئ مثل
كود :
var h,m:integer; t, time1, time2: TTime; begin time1 := StrToTime(edit1.Text); time2 := StrToTime(edit2.Text); if time1>time2 then Begin t:=time1;time1:=time2;time2:=t;End; h:=Round(MinuteSpan(time1, time2)) Div 60; m:=Round(MinuteSpan(time1, time2)) Mod 60; edit3.text:= inttostr(m); if h>0 then edit3.text:=inttostr(h)+':'+edit3.text; end;
ولا تنسى اضافة DateUtils بقائمة الUses
ملاحظة: الفرق صحيح عندما يكون اقل من 24 ساعة اي لا ياخذ عدد الأيام بالحسبان والا وجب التعديل.
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم