Како израчунати временску разлику у Питхон-у

Када радите са датумима и временима у Питхон-у, често ћете морати да израчунате временску разлику. У овом водичу ћете научити како да израчунате разлику између две временске ознаке у сатима, минутима и секундама.

До краја овог водича научићете:

  • како да користите Питхон-ов модул датетиме за рад са датумима и временом,
  • шта су тимеделта објекти и како су корисни, и
  • израчунајте временску разлику између било које две временске ознаке—у сатима, минутима и секундама.

Хајде да почнемо.

Како користити Питхон-ов модул датума и времена

За рад са датумима и временима у Питхон-у, користићете модул датетиме. Модул датетиме је део Питхон стандардне библиотеке. Тако да можете одмах да га увезете у своје радно окружење, овако:

import datetime

Да бисте израчунали временску разлику, потребно је да направите две различите временске ознаке. Можете изабрати да креирате:

  • два објекта датума,
  • два временска објекта, или
  • комбинација датума и времена—датетиме објекти.

Како направити објекат датума у ​​Питхон-у

Хајде да увеземо класу датума из модула датетиме. Да бисте креирали објекат датума у ​​Питхон-у, можете користити општу синтаксу датетиме.дате(<година>,<месец>,<дан>). Ево примера креирања објекта датума дате1:

from datetime import date
date1 = datetime.date(2022,3,27)
print(date1)

# Output: 2022-03-27

Можете испробати код на вдзвдз Питхон компајлеру да бисте га тестирали. Или инсталирајте Питхон на свој рачунар.

Као што је горе приказано, када одштампате датум, он је форматиран у ГГГГ-ММ-ДД формату за датуме.

Напомена: Обавезно наведите месец као цео број без водећих нула. Вероватно сте навикли да додајете почетну нулу месецу када пишете датуме.

На пример, да бисте навели датум у јуну, 6. месецу у години: користите 6, а не 06.

  Како да подесите и користите иПхоне Кс, иПхоне КСР, иПхоне КСС или иПхоне КСС Мак

На пример, покушајте да покренете следећи исечак кода—где је месец наведен као 03 уместо само 3. Видећете да даје синтаксичку грешку као што је приказано:

date1 = datetime.date(2022,03,27)

print(date1)

# Error Message
File "<ipython-input-12-6eb72084e6ce>", line 1
    date1 = datetime.date(2022,03,27)
                                ^
SyntaxError: invalid token

Хајде сада да видимо како да креирамо временски објекат у Питхон-у.

Како направити временски објекат у Питхон-у

Да бисмо креирали временски објекат, хајде да увеземо временску класу. Било који Питхон временски објекат се може креирати коришћењем временске класе навођењем следећих атрибута класе: сат, минут, секунда и микросекунда.

Међутим, сви ови атрибути су опциони. Ако не наведете одређени атрибут, рецимо, друго, он је подразумевано подешен на 0.

Следећи исечак кода показује како можете да креирате временски објекат тиме1. Као и код објекта датума, можете одштампати објекат времена да бисте видели форматирано време.

from datetime import time
time1 = datetime.time(13,27,45,4600)
print(time1)

# Output: 13:27:45.004600

Како направити објекат датума и времена у Питхон-у

Као што видите, објекат датума нема информације о времену. А објекат времена не садржи информације о датуму.

Међутим, у пракси ће вам бити потребне и информације о датуму и времену. Зато се препоручује да уместо тога користите класу датетиме.

Можете приступити класи датетиме и креирати објекте датетиме у Питхон-у, као што је приказано у наставку:

dt1 = datetime.datetime(2022,3,27,13,27,45,46000)
print(dt1)

# Output: 2022-03-27 13:27:45.046000

Хајде сада да направимо други објекат датума и времена дт2 без другог атрибута. Можете видети да је постављено на 0 – подразумевана вредност.

dt2 = datetime.datetime(2022,6,30,14,28)
print(dt2)

# Output: 2022-06-30 14:28:00

До сада сте научили како да креирате временске ознаке у Питхон-у—као датуме, времена и датуме. Сада је време да видимо како можете израчунати разлику између било које две временске ознаке.

Пређите на следећи одељак да бисте сазнали.

Како користити тимеделта објекат у Питхон-у

У Питхон-у, тимеделта означава временски распон. То је разлика између два објекта датума, времена или датума и времена.

Ако додате или одузмете два објекта датума, времена или датума и времена, добићете објекат тимеделта. Овај тимеделта објекат има корисне атрибуте и методе које могу помоћи у израчунавању временске разлике.

  Како покренути Мац ОС Монтереи на Убунту-у

Хајдемо напред и израчунајмо разлику између два објекта датума и времена дт1 и дт2.

dt1 = datetime.datetime(2022,3,27,13,27,45,46000) 
dt2 = datetime.datetime(2022,6,30,14,28) 
tdelta = dt2 - dt1 
print(tdelta) 
print(type(tdelta)) 

# Output 
95 days, 1:00:14.954000 
<class 'datetime.timedelta'>

Из горњег исечка кода можете видети да променљива тделта садржи временску разлику између дт1 и дт2. А тип тделта је верификован да припада класи тимеделта користећи уграђени Питхон тип() функција.

Хајде да кодирамо још један пример.

Како пронаћи временску разлику између два датума

Узмимо једноставан, али занимљив пример.

Проблем: Да израчунате временску разлику између тренутног датума (данас) и вашег рођендана.
Да бисте то урадили, поставите данас као прву временску ознаку, а свој рођендан као другу временску ознаку.

Као први корак, направимо два објекта датума и времена:

  • један за данас, назовимо га данас, и
  • још један за твој рођендан, назовимо га рођендан

Класа датетиме има метод нов() који вам даје тренутни локални датум и време. Дакле, хајде да га искористимо за данас—наш референтни датум.

today = datetime.datetime.now()
print(today)

# Sample Output: 2022-01-22 09:10:18.489538

У коду испод, замените бдаи са својим рођенданом да бисте израчунали преостало време за ваш рођендан ове године.

Ако ово читате након што вам прође рођендан, слободно поставите бдаи на свој следећи рођендан.

bday = datetime.datetime(2022,8,30,11,59)
print(bday)

# Sample Output: 2022-08-30 11:59:00

Следећи корак је израчунавање тиме_дифф који је тимедлета објекат, као што је раније објашњено. Једноставно одузмите данашњи дан од свог рођендана и имаћете временску разлику.

time_diff = bday - today
print(f"Your birthday is in {time_diff}")

# Output
Your birthday is in 220 days, 2:46:00.127416

Да бисте сазнали број преосталих дана, користите атрибут дана на тиме_дифф, као што је приказано:

tdays = time_diff.days
print(f"Your birthday is in {tdays} days.")

# Output
Your birthday is in 220 days.

Како пронаћи временску разлику у секундама

Хајде сада да израчунамо колико је секунди до вашег рођендана.

Да бисте израчунали укупну временску разлику у секундама, користите метод тотал_сецондс() на објекту тимеделта тиме_дифф.

tsecs = time_diff.total_seconds()
print(f"Your birthday is {tsecs} seconds away.")

# Output
Your birthday is 19017960.127416 seconds away.

Па, то је предуго чекање!

  Поправи Хулу код грешке 406

Уз то, сада знате како да израчунате временску разлику између било које две временске ознаке у секундама.

Хајде да се сада вратимо на неке основе и запишемо следеће. Дан се састоји од 24 сата, сат траје 60 минута, а 60 секунди чини минут.

Ово је сажето на слици испод:

Сати, минуте и секунде

Дакле, да бисте претворили из секунди у минуте, сате и дане, можете користити следећу табелу и поделити је са одговарајућим фактором конверзије.

Табела конверзије времена

У следећим одељцима, хајде да претворимо временску разлику у секундама у минуте и сате.

Како пронаћи временску разлику у минутима

Да бисте добили временску разлику у минутима, потребно је само да поделите укупан број секунди са 60.

Хајде да поделимо тсецс са 60 и ускладиштимо их у променљивој која се зове тминс, овако:

tmins = tsecs/60
print(f"Your birthday is {tmins} minutes away.")

# Output
Your birthday is 316966.0021236 minutes away.

Како пронаћи временску разлику у сатима

Сада када сте израчунали временску разлику у минутима, можете то поделити са фактором 60 да бисте добили разлику у сатима. Или можете поделити укупан број секунди са 60*60 = 3600.

thrs = tsecs/(60*60)
print(f"Your birthday is {thrs} hours away.")

# Output
Your birthday is 5282.76670206 hours away.

Дакле, сада сте научили како да израчунате временску разлику у било којој јединици по вашем избору.

Закључак

У овом водичу научили сте како да:

  • креирајте и радите са датумима и временима користећи Питхон-ов датетиме модул,
  • користите објекте тимеделта да бисте добили временски распон или временску разлику, и
  • израчунајте временску разлику у секундама, минутима и сатима.

Надам се да вам је овај водич био користан. Сада када знате све о израчунавању временске разлике у Питхон-у, време је да увежбате своје вештине.

Срећно учење и кодирање!

Научите како да пишете једнако или не једнако коду или направите игру змија у Питхон-у овде.