Python convert minutes to hours and minutes

Python convert minutes to hours and minutes

If a string looks like H:MM:SS then it doesn’t make sense to specify a different format. Solution: Use a modulo by converting your hours to minutes One can also use : Solution 1: Here is ugly bug processing only less like 100 rows, so after stripping is called in for prevent it: Another solution with and : Solution 2: jezrael’s answer is excellent, but I spent quite some time working on this

How to convert minutes to hours and minutes in python?

Use a modulo by converting your hours to minutes

from math import floor eta_in_hours = 2.6 eta_in_hours_and_minutes = (floor(eta_in_hours), eta_in_hours * 60 % 60) print(eta_in_hours_and_minutes) 
eta_in_hours = 2.6 eta_in_minutes = eta_in_hours * 60 eta_in_hours_and_minutes = divmod(eta_in_minutes, 60) print(eta_in_hours_and_minutes) 

Python program to convert seconds into hours, minutes, Examples: Input : 12345 Output : 3:25:45 Input : 3600 Output : 1:00:00 Approach #1 : Naive This approach is simply a naive approach to get the hours, minutes and seconds by simple mathematical calculations.

Читайте также:  Прочитать последнюю строку файла java

Convert string as ‘hours’ and ‘mins’ into minutes

Here is ugly bug pd.eval processing only less like 100 rows, so after stripping + is called pd.eval in Series.apply for prevent it:

df['Minutes'] = (df['Time'].replace(['hours?', 'mins'], ['*60+', ''], regex=True) .str.strip('+') .apply(pd.eval)) print (df) Time Minutes 0 2 hours 3 mins 123 1 5 hours 10 mins 310 2 1 hours 40 mins 100 3 10 mins 10 4 4 hours 240 5 6 hours 0 mins 360 
#verify for 120 rows df = pd.concat([df] * 20, ignore_index=True) df['Minutes1'] = pd.eval( df['Time'].replace(['hours?', 'mins'], ['*60+', ''], regex=True).str.strip('+')) print (df) 

ValueError: unknown type object

Another solution with Series.str.extract and Series.add :

h = df['Time'].str.extract('(\d+)\s+hours').astype(float).mul(60) m = df['Time'].str.extract('(\d+)\s+mins').astype(float) df['Minutes'] = h.add(m, fill_value=0).astype(int) print (df) Time Minutes 0 2 hours 3 mins 123 1 5 hours 10 mins 310 2 1 hours 40 mins 100 3 10 mins 10 4 4 hours 240 5 6 hours 0 mins 360 

jezrael’s answer is excellent, but I spent quite some time working on this so i figured i’ll post it.

You can use a regex to capture ‘hours’ and ‘minutes’ from your column, and then assign back to a new column after applying the logical mathematical operation to convert to minutes:

r = "(?:(\d+) hours ?)?(?:(\d+) mins)?" hours = df.Time.str.extract(r)[0].astype(float).fillna(0) * 60 minutes = df.Time.str.extract(r)[1].astype(float).fillna(0) 
df['minutes'] = hours + minutes print(df) Time minutes 0 2 hours 3 mins 123.0 1 5 hours 10 mins 310.0 2 1 hours 40 mins 100.0 3 10 mins 10.0 4 4 hours 240.0 5 6 hours 0 mins 360.0 

I enjoy using https://regexr.com/ to test my regex

Python — Need help converting total number of minutes, Check out the timedelta documentation in the datetime module documents. You can create the durations as time deltas in minutes, and then when you want to display it you can ask timedelta to give it in whatever format you want. You could use arithmetic calculations to get the hours and minutes, but if you …

Python — convert time to hours and minutes, not seconds

But you have seconds. So you must convert them, but you can replace them with 0:

datetime.datetime.strptime('1:02:30','%H:%M:%S').replace(second=0) 

What you are doing is you are reading time value from a formatted string. If a string looks like H:MM:SS then it doesn’t make sense to specify a different format. If you want to format the datetime value without seconds, it’s possible with strftime:

>>> Time1="1:02:00" >>> Hrs = datetime.datetime.strptime((Time1), "%H:%M:%S") >>> print Hrs.strftime("%H:%M") 01:02 

Python — Convert Days and Time (Hours x Minutes x, What you have is a datetime.timedelta object, which is what you get from the subtration of two datetime.datetime objects. This question has already been answered here.. On a side note, it looks like you’re trying to use strptime when you really want to use strftime.strptime parses a string and turns it into a …

How to split ‘Hour’ and ‘Minute’ from my dataset

Try with pd.to_timedelta and with accesor dt.components :

s=pd.to_timedelta(df['Duration']) df['hours']=s.dt.components['hours'] df['minutes']=s.dt.components['minutes'] print(df) Duration hours minutes 0 2h 50m 2 50 1 25m 0 25 2 19h 19 0 
if 'h' in duration[i]: duration[i] = duration[i].strip() + ' 0m' #----> just add the space here " 0m" else: duration[i] = '0h ' + duration[i] #------> add the space here "0h " as well 

Python — Convert minutes to full hours without days, Calculating total hours from minutes is trivial, though, you don’t need to import any modules — it’s minutes // 60 hours and minutes % 60 minutes. – jonrsharpe Jan 2 at 22:33

Источник

Python Program to Convert Seconds to Hours and Minutes

Conversion Of Seconds To Hour And Minutes In Python

Sometimes we have to convert seconds to hours and minutes in Python. It’s mostly required when we are storing data in the form of a timestamp and we have to display it properly in minutes and seconds format. In this article, we will look at the Python program to convert seconds to hours and minutes.

Conversion Rules for Different Time Units

Every day consists of 24 hours. Every hour has 60 minutes and every minute has 60 seconds. So, an hour has 3,600 seconds and a day consists of 86,400 seconds.

There are different ways to convert seconds to minutes and minutes to hours in Python.

Method 1: Defining a Python function to convert seconds to hours and minutes

We can write a custom Python function to convert seconds value into hours and minutes.

Initially, we convert the input seconds value according to the 24-hour format.

Since 1 hour is equivalent to 3600 seconds and 1 minute is equivalent to 60 seconds, we follow the below logic to convert seconds to hours and minutes.

def time_conversion(sec): sec_value = sec % (24 * 3600) hour_value = sec_value // 3600 sec_value %= 3600 min = sec_value // 60 sec_value %= 60 print("Converted sec value in hour:",hour_value) print("Converted sec value in minutes:",min) sec = 50000 time_conversion(sec)
Converted sec value in hour: 13 Converted sec value in minutes: 53

Method 2: Python time module to convert seconds to minutes and hours

Python time module contains time.strftime() function to display the timestamp as a string in a specified format by passing the format code as an argument.

The time.gmtime() function is used to convert the value passed to the function into seconds. Further, time.strftime() function displays the value passed from time.gmtime() function to hours and minutes using the specified format codes.

import time sec = 123455 ty_res = time.gmtime(sec) res = time.strftime("%H:%M:%S",ty_res) print(res)

Method 3: The Naive method

sec = 50000 sec_value = sec % (24 * 3600) hour_value = sec_value // 3600 sec_value %= 3600 min_value = sec_value // 60 sec_value %= 60 print("Converted sec value in hour:",hour_value) print("Converted sec value in minutes:",min_value)
Converted sec value in hour: 13 Converted sec value in minutes: 53

Method 4: Python datetime module

Python datetime module has various in-built functions to manipulate date and time. The datetime.timedelta() function manipulates and represents the data in a proper time format.

import datetime sec = 123455 res = datetime.timedelta(seconds =sec) print(res)

Summary

Python provides many modules to convert seconds to minutes and hours. We can create our own function or use the time and datetime modules.

What’s Next?

References

Источник

Преобразование времени в часы, минуты и секунды в Python

В этом уроке мы будем говорить о времени. Рассмотрим различные способы преобразования времени в секундах во время в часах, минутах и секундах.

Двигаясь вперед, мы будем называть время в часах, минутах и секундах предпочтительным форматом.

Давайте потратим немного «времени» и подумаем о проблеме. Несомненно, у python есть удивительные модули, которые могут сделать преобразование за нас. Но давайте сначала попробуем написать нашу собственную программу, прежде чем мы перейдем к встроенным модулям.

Создание пользовательской функции

Чтобы написать нашу собственную функцию преобразования, нам сначала нужно подумать о проблеме математически.

Как перевести секунды в предпочтительный формат? Вам нужно получить значение часов, минут и секунд.

Предположим, что время в секундах не превышает общего количества секунд в сутках. Если это так, мы разделим его на общее количество секунд в день и возьмем остаток.

Математически это представлено как:

seconds = seconds % (24 * 3600)

24 * 3600, поскольку в одном часе 3600 секунд (60 * 60), а в одном дне 24 часа.

После этого мы можем продолжить и вычислить значение часа из секунд.

1. Как получить значение часа?

Чтобы получить значение часа из секунд, мы будем использовать оператор деления (//). Он возвращает целую часть частного.

Поскольку нам нужно количество часов, мы разделим общее количество секунд (n) на общее количество секунд в часе (3600).

Математически это представлено как:

После этого нам нужно посчитать минуты.

2. Как получить значение минуты?

Чтобы вычислить значение минут, нам нужно сначала разделить общее количество секунд на 3600 и взять остаток.

Математически это представлено как:

Теперь, чтобы вычислить значение минут из приведенного выше результата, мы снова будем использовать оператор floor.

В минуте шестьдесят секунд, поэтому мы уменьшаем значение секунд до 60.

После вычисления значения минут мы можем перейти к вычислению значения секунд для нашего предпочтительного формата.

3. Как получить значение секунд?

Чтобы получить значение секунд, нам снова нужно разделить общее количество секунд на количество секунд в одной минуте (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

Использование модуля времени

Теперь давайте посмотрим на встроенный модуль, который позволяет нам конвертировать секунды в наш предпочтительный формат в одной строке кода.

Модуль времени определяет эпоху как 1 января 1970 года, 00:00:00 (UTC) в системах Unix (зависит от системы). Эпоха – это, по сути, начало времени для компьютера. Думайте об этом как о floor 0. Всякий раз, когда мы конвертируем секунды с помощью модуля времени, эта эпоха используется как точка отсчета.

Чтобы вывести эпоху в вашей системе, используйте следующую строку кода:

Time Epoch

Чтобы преобразовать секунды в предпочтительный формат, используйте следующую строку кода:

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

Модуль времени также дает вам возможность отображать дополнительную информацию, такую как день, месяц и год.

% а Отображать сокращенное название дня недели.
% А Отображать полное название дня недели.
% b Отображать сокращенное название месяца.
% B Отображать полное название месяца.
% c Отобразить соответствующее представление даты и времени.
% d Отображать день месяца как десятичное число [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

Заключение

В этом руководстве были рассмотрены три различных способа преобразования секунд в часы, минуты и секунды. В целом есть два разных способа решения проблемы.

Вы либо пишете свою собственную функцию, либо используете встроенный модуль. Мы начали с написания нашей собственной функции, а затем посмотрели на модуль времени и DateTime.

Источник

Оцените статью