المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الفرق بين توقيتين


ثامر أبو بلقيس
26-01-2016, 07:19 PM
السلام عليكم ورحمة الله وبركاته
حتى نختصر البحث .. قلت ذلك لأني لا أدري هل الموضوع مكرر ؟ هل الموضوع مطروح من قبل ؟
لا أدري كل ما في الأمر هناك من يبحث على حساب الفرق بين توقيتين
لذالك أحببت أن أكتب :
t = os.date('*t')
t1 = os.time{year = t.year, month = t.month, day = t.day,hour= ("10"), min= ("09"), sec = ("35")} -- التوقيت الاول
t2 = os.time{year = t.year, month = t.month, day = t.day,hour= ("19"), min= ("59"), sec = ("23")} -- التوقيت الثاني
----------------------------------------------------------------------------------------
x = String.ToNumber(os.difftime (t2, t1)) --- الفارق بين التوقيتين
hours = Math.Floor(x / 3600); -- فارق الساعات
minutes = Math.Floor((x - (hours * 3600))/ 60) --- فارق الدقائق
seconds = x - ((hours * 3600) + (minutes * 60)) -- فارق الثواني
Dialog.Message("",hours ..' '..minutes .." ".. seconds);

حيث حافظت عند عملية الطرح على نفس السنة و نفس الشهر و نفس اليوم قصدا
لاستخراج المواقيت
فاشلة .. ناجحة التجربة تحكم
الموضوع مكرر .. يمكن حذفه

تقديري :abc_138:

azizsoft
26-01-2016, 10:02 PM
بسم الله الرحمن الرحيم

بارك الله فيكم أستاذ ثامر على جهودكم القيمة

وفقكم الله :abc_022:

ثامر أبو بلقيس
26-01-2016, 11:11 PM
بسم الله الرحمن الرحيم

بارك الله فيكم أستاذ ثامر على جهودكم القيمة

وفقكم الله :abc_022:

أسعد كثيرا بمرورك على محاولاتي شكرا :abc_138:

ياسرهتهت
27-01-2016, 01:40 AM
بسم الله الرحمن الرحيم
بارك الله فيك استذنا الكريم
موفق بإذن الله ... لك مني أجمل تحية .
:abc_138::abc_138:

فرح صالحي
27-01-2016, 09:28 AM
اعطت نتيجة لكن بصراحة لم افهمها
موفق بإذن الله .:abc_152:.. لك مني أجمل تحية .

عبد الهادي بهاب
27-01-2016, 10:21 AM
:abc_152::abc_152:

سيكون اضاقة مؤثرة مطلوبة في بحث اخونا امين في ساعة فرنسا

ربي يحفظكم ......... كنت اود ان استعمل دالة math.mid للفصل بين الساعات و الدقائق ..........لذلك اختصار كبير لجهد كبير .......ربي يسجيك و جفظكم

ثامر أبو بلقيس
28-01-2016, 09:56 PM
بسم الله الرحمن الرحيم بسم الله الرحمن الرحيم
بارك الله فيك استذنا الكريم
موفق بإذن الله ... لك مني أجمل تحية .
:abc_138::abc_138:

مرور طيب بارك الله فيـــك :abc_138:

هناك مشكــــل في الكود عند التعامل مع الساعة صفر " منتصف الليل " مثلا
لو أردنا إختبار الكود لحساب الفارق الزمني بين توقيتين في النظام الستيني
حيث :
وقت الانطلاق : الساعة 10 صباحا و 9 دقائق و 35 ثانية
أما وقت الوصول فهو : الساعة 00 و 59 دقيقة و 23 ثوان
سيكون الكود :
t = os.date('*t')
t1 = os.time{year = t.year, month = t.month, day = t.day,hour= ("10"), min= ("09"), sec = ("35")} -- التوقيت الاول
t2 = os.time{year = t.year, month = t.month, day = t.day,hour= ("00"), min= ("59"), sec = ("23")} -- التوقيت الثاني
----------------------------------------------------------------------------------------
x = String.ToNumber(os.difftime (t2, t1)) --- الفارق بين التوقيتين
hours = Math.Floor(x / 3600); -- فارق الساعات
minutes = Math.Floor((x - (hours * 3600))/ 60) --- فارق الدقائق
seconds = x - ((hours * 3600) + (minutes * 60)) -- فارق الثواني
Dialog.Message("",hours ..' '..minutes .." ".. seconds);

لكن الناتج :
هو -10 ساعات و 49 دقيقة و 48 ثانية وهذا خطأ ويحدث هذا الخطأ مع الساعة صفر
لكن هذا الكود :
hour1="10";min1="09";sec1="10" ---- هنا ثواني و دقائق و ساعات الزمن الأول أي الانطلاق
hour2="00";min2="59";sec2="23" ---- هنا ثواني و دقائق و ساعات الزمن الثاني أي الوصول
if hour2~= "00" then
hour2=hour2 ;else
hour2="24" ;end
if hour1~= "00" then
hour1=hour1 ;else
hour1="24" ;end
t = os.date('*t')
t1 = os.time{year = t.year, month = t.month, day = t.day,hour=hour1, min= min1, sec = sec1}
t2 = os.time{year = t.year, month = t.month, day = t.day,hour= hour2, min= min2, sec = sec2}
----------------------------------------------------------------------------------------
x = String.ToNumber(os.difftime (t2, t1))
hours = Math.Floor(x / 3600); --- هنا تم استخلاص فارق الساعات
minutes = Math.Floor((x - (hours * 3600))/ 60) --- و هنا فارق الدقائق
seconds = x - ((hours * 3600) + (minutes * 60)) --- وهنا فارق الثواني
---- مع مراعاة التحويلات اللازمة في النظام الستيني كانت النتائج كالتالي
Dialog.Message("",hours ..' '..minutes .." ".. seconds);
يعطي الناتج : 14 ساعة و 50 دقيقة و 13 ثانية وهو الأصح :abc_139:
لذلك جيد لو يستبدل الكود في أعلى المشاركة بهذا التعديل الأخير :abc_138:

ثامر أبو بلقيس
28-01-2016, 10:01 PM
اعطت نتيجة لكن بصراحة لم افهمها
موفق بإذن الله .:abc_152:.. لك مني أجمل تحية .
مرور عطر لعل المشاركة أعلاه وضحت أن القضية متعلقة بطرح المدد
وفق النظام الستيني :abc_138:

ثامر أبو بلقيس
28-01-2016, 10:02 PM
:abc_152::abc_152:

سيكون اضاقة مؤثرة مطلوبة في بحث اخونا امين في ساعة فرنسا

ربي يحفظكم ......... كنت اود ان استعمل دالة math.mid للفصل بين الساعات و الدقائق ..........لذلك اختصار كبير لجهد كبير .......ربي يسجيك و جفظكم
مرور عطر :abc_138: نعم هو القصد موفق :abc_152:

الهمام
02-02-2016, 03:34 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية . موفق بإذن الله ... لك مني أجمل تحية .