Source code for hal.times.utils
# -*- coding: utf-8 -*-
"""Parse, convert times formats """
from datetime import datetime
MONTHS_NAMES = [
datetime.strftime(datetime(year=1, month=m, day=1), "%B")
for m in range(1, 13)
] # names of each month
MONTHS = {
i + 1: MONTHS_NAMES[i] for i in range(len(MONTHS_NAMES))
} # dict <month index: month name>
[docs]class Timing:
"""Time"""
def __init__(self, raw):
"""
:param raw: raw time
"""
self.raw = str(raw).strip() # discard gibberish
[docs] def parse_hh_mm_ss(self):
"""Parses raw time
:return: Time parsed
"""
split_count = self.raw.count(":")
if split_count == 2: # hh:mm:ss
return datetime.strptime(str(self.raw).strip(), "%H:%M:%S").time()
elif split_count == 1: # mm:ss
return datetime.strptime(str(self.raw).strip(), "%M:%S").time()
return datetime.strptime(str(self.raw).strip(), "%S").time()
[docs] def get_seconds(self):
"""Gets seconds from raw time
:return: Seconds in time
"""
parsed = self.parse_hh_mm_ss() # get times
total_seconds = parsed.second
total_seconds += parsed.minute * 60.0
total_seconds += parsed.hour * 60.0 * 60.0
return total_seconds
[docs] def parse_hh_mm(self):
"""Parses raw time
:return: Time parsed
"""
split_count = self.raw.count(":")
if split_count == 1: # hh:mm
return datetime.strptime(self.raw, "%H:%M").time()
return datetime.strptime(self.raw, "%M").time()