في هذا البرنامج التعليمي، سنتحدث عن الوقت. لا تقلق، هذا ليس برنامج تاريخ ممل، بل سننظر إلى طرق مختلفة لتحويل الوقت من ثواني إلى ساعات، دقائق، وثواني.
سنشير إلى الوقت بالساعات، الدقائق والثواني كـ الوقت بالتنسيق المفضل
سيبدو هكذا:
2:46:40
دعونا نأخذ بعض الوقت ونفكر في المشكلة المطروحة. لا شك أن لغة البرمجة بايثون لديها وحدات رائعة للقيام بالتحويل لنا. ولكن دعونا نحاول كتابة برنامجنا الخاص أولاً قبل أن ننتقل إلى الوحدات المدمجة.
بناء وظيفة مخصصة لتحويل الوقت إلى ساعات ودقائق وثواني
لكتابة وظيفة التحويل الخاصة بنا، نحتاج أولاً إلى التفكير في المشكلة رياضياً.
كيف يمكنك تحويل الثواني إلى التنسيق المفضل؟
يجب أن تحصل على قيمة الساعات، الدقائق والثواني
سنفترض أن الوقت بالثواني لا يتجاوز العدد الإجمالي للثواني في يوم واحد. إذا حدث ذلك، سنقوم بقسمته على العدد الإجمالي للثواني في يوم واحد ونأخذ الباقي.
يتم تمثيل هذا رياضياً كالتالي:
seconds = seconds % (24 * 3600)
يعطي عامل ال٪ الباقي.
24*3600 منذ أن الساعة تحتوي على 3600 ثانية (60*60) واليوم يحتوي على 24 ساعة.
بعد ذلك يمكننا المتابعة وحساب قيمة الساعة من الثواني.
1. احصل على قيمة الساعة
للحصول على قيمة الساعة من الثواني، سنستخدم عامل القسمة الكلية (//).
يُرجى العلم أنه يعيد القسمة للقسم الصحيح فقط.
نحن بحاجة إلى عدد الساعات، لذلك سنقسم إجمالي عدد الثواني (n) على إجمالي عدد الثواني في ساعة (3600).
رياضياً، يتم تمثيل ذلك كما يلي:
hour = seconds // 3600
بعد ذلك نحتاج إلى حساب الدقائق.
2. احصل على قيمة الدقيقة
لحساب قيمة الدقائق، يجب أولاً قسم إجمالي عدد الثواني على 3600 واحتساب الباقي.
رياضياً، يتم تمثيل ذلك كما يلي:
seconds = seconds % 3600
ثم، لحساب قيمة الدقائق من النتيجة أعلاه، سنستخدم مرة أخرى عامل القسمة الكلية.
minutes = seconds // 60
A minute has sixty seconds hence we floor the seconds value with 60.
بعد حساب القيمة بالدقائق يمكننا المضي قدمًا إلى حساب قيمة الثواني لتنسيقنا المفضل.
3. الحصول على قيمة الثواني
للحصول على قيمة الثواني نحتاج مرة أخرى إلى قسمة العدد الإجمالي للثواني على عدد الثواني في دقيقة واحدة (60) وأخذ الباقي.
هذا يتم رياضياً كما يلي:
seconds = seconds % 60
سيعطي هذا القيمة الثانية التي نحتاجها لتنسيقنا المفضل.
4. الكود الكامل
دعونا نجمع المعرفة أعلاه في وظيفة Python.
def convert_to_preferred_format(sec):
sec = sec % (24 * 3600)
hour = sec // 3600
sec %= 3600
min = sec // 60
sec %= 60
print("seconds value in hours:",hour)
print("seconds value in minutes:",min)
return "%02d:%02d:%02d" % (hour, min, sec)
n = 10000
print("Time in preferred format :-",convert(n))
الإخراج:
seconds value in hours: 2
seconds value in minutes: 46
Time in preferred format :- 02:46:40
استخدام وحدة الوقت
الآن دعونا نلقي نظرة على وحدة مدمجة تسمح لنا بتحويل الثواني إلى تنسيقنا المفضل في سطر واحد من الكود.
الوحدة الزمنية time تحدد الحقبة كـ 1 يناير 1970، 00:00:00 (توقيت عالمي) في نظم Unix (تعتمد على النظام). الحقبة هي أساساً بداية الوقت للحاسوب. فكر فيها كـ اليوم 0. عند تحويل الثواني باستخدام وحدة الزمن، يُستخدم هذه الحقبة كنقطة مرجعية.
لإخراج الحقبة في نظامك، استخدم السطر البرمجي التالي:
time.gmtime(0)
لتحويل الثواني إلى الشكل المفضل، استخدم السطر البرمجي التالي:
time.strftime("%H:%M:%S", time.gmtime(n))
يأخذ هذا السطر الزمن بالثواني كـ ‘n’ ويسمح لك بإخراج قيمة الساعة، الدقيقة، والثانية بشكل منفصل.
الشيفرة البرمجية الكاملة في Python كما يلي:
import time
n=10000
time_format = time.strftime("%H:%M:%S", time.gmtime(n))
print("Time in preferred format :-",time_format)
الناتج:
Time in preferred format :- 02:46:40
توفر وحدة الزمن أيضًا خيار عرض بعض المعلومات الإضافية مثل اليوم، الشهر، والسنة.
%a |
display abbreviated weekday name. |
%A |
display full weekday name. |
%b |
display abbreviated month name. |
%B |
display full month name. |
%c |
display the appropriate date and time representation. |
%d |
display day of the month as a decimal number [01,31]. |
لنجرب استخدام %a و %b.
import time
n=100000000000
time_format = time.strftime("Day: %a, Time: %H:%M:%S, Month: %b", time.gmtime(n))
print("Time in preferred format :-",time_format)
الناتج:
Time in preferred format :- Day: Wed, Time: 09:46:40, Month: Nov
باستخدام وحدة Datetime
يمكنك أيضًا استخدام الطريقة timedelta تحت وحدة DateTime لتحويل الثواني إلى الشكل المفضل.
تعرض الوقت كأيام وساعات ودقائق وثوانٍ مضت منذ الحقبة.
الكود في لغة Python لتحويل الثواني إلى التنسيق المفضل باستخدام وحدة Datetime هو كما يلي:
import datetime
n= 10000000
time_format = str(datetime.timedelta(seconds = n))
print("Time in preferred format :-",time_format)
الناتج:
Time in preferred format :- 115 days, 17:46:40
الاستنتاج
شرح هذا البرنامج التعليمي ثلاث طرق مختلفة يمكنك استخدامها لتحويل الثواني إلى ساعات ودقائق وثوانٍ. بشكل عام، هناك طريقتان مختلفتان للتعامل مع المشكلة.
إما أن تقوم بكتابة وظيفتك الخاصة أو استخدام وحدة مدمجة. بدأنا بكتابة وظيفتنا الخاصة ثم نظرنا إلى الوحدة time والوحدة DateTime.
Source:
https://www.digitalocean.com/community/tutorials/python-convert-time-hours-minutes-seconds