המרת זמן לשעות, דקות ושניות בפייתון

במדריך זה, אנחנו נדבר על זמן. אל דאגה, זה לא מדריך היסטוריה משעמם, אלא אנחנו נסתכל על שיטות שונות להמרת זמן בשניות לזמן בשעות, דקות ושניות.

המשך נדבר על זמן בשעות, דקות ושניות כזמן בפורמט המועדף.

הפורמט ייראה כך:

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. קוד מלא

בואו לקמפל את הידע לעיל בפונקציה בפייתון.

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

שימוש במודול הזמן

כעת בואו נסתכל על מודול מובנה שמאפשר לנו להמיר שניות לתבנית המועדפת שלנו בשורה אחת של קוד.

מודול הזמן מגדיר את האפוק בתאריך 1 בינואר 1970, 00:00:00 (UTC) במערכות Unix (תלויות במערכת). האפוק הוא בגדר ההתחלה של הזמן עבור מחשב. ניתן לחשוב עליו כעל יום 0. בכל פעם שאנו ממירים שניות באמצעות מודול הזמן, האפוק הזה משמש כנקודת הייחוס.

כדי להציג את האפוק במערכת שלך, ניתן להשתמש בקוד הבא:

time.gmtime(0)

כדי להמיר שניות לפורמט המועדף, ניתן להשתמש בקוד הבא:

time.strftime("%H:%M:%S", time.gmtime(n))

שורה זו מקבלת את הזמן בשניות כ 'n' ואז מאפשרת לך להציג ערך של שעה, דקה ושנייה בנפרד.

קוד הפייתון המלא הוא כדלקמן:

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 כדי להמיר שניות לפורמט המועדף.

הוא מציג את הזמן כימים, שעות, דקות ושניות שחלפו מאז האפוק.

הקוד בפייתון להמרת שניות לתבנית המועדפת באמצעות מודול 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