From 7fcaf6427be1f506f9e92af8a6938e16ebe2078b Mon Sep 17 00:00:00 2001 From: Jranii Date: Tue, 17 Oct 2023 17:50:00 +0530 Subject: [PATCH 1/2] time conversion --- conversions/time_conversions.py | 102 ++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 conversions/time_conversions.py diff --git a/conversions/time_conversions.py b/conversions/time_conversions.py new file mode 100644 index 000000000000..6c3c9d8ef40e --- /dev/null +++ b/conversions/time_conversions.py @@ -0,0 +1,102 @@ +from datetime import datetime, timedelta + +def seconds_to_minutes(seconds: int) -> int: + """ + Convert seconds to minutes. + + Args: + seconds (int): The number of seconds. + + Returns: + int: The equivalent number of minutes. + + >>> seconds_to_minutes(60) + 1 + >>> seconds_to_minutes(300) + 5 + >>> seconds_to_minutes(3600) + 60 + """ + minutes = seconds // 60 + return minutes + +def minutes_to_hours(minutes: int) -> int: + """ + Convert minutes to hours. + + Args: + minutes (int): The number of minutes. + + Returns: + int: The equivalent number of hours. + + >>> minutes_to_hours(60) + 1 + >>> minutes_to_hours(120) + 2 + >>> minutes_to_hours(180) + 3 + """ + hours = minutes // 60 + return hours + +def hours_to_days(hours: int) -> int: + """ + Convert hours to days. + + Args: + hours (int): The number of hours. + + Returns: + int: The equivalent number of days. + + >>> hours_to_days(24) + 1 + >>> hours_to_days(48) + 2 + >>> hours_to_days(72) + 3 + """ + days = hours // 24 + return days + +def string_to_datetime(date_str: str, date_format: str = '%Y-%m-%d') -> datetime: + """ + Convert a date string to a datetime object. + + Args: + date_str (str): The date string. + date_format (str, optional): The format of the date string. Default is '%Y-%m-%d'. + + Returns: + datetime: The datetime object. + + >>> date_str = "2023-10-15" + >>> date_obj = string_to_datetime(date_str) + >>> date_obj.strftime('%Y-%m-%d') + '2023-10-15' + """ + date_obj = datetime.strptime(date_str, date_format) + return date_obj + +def datetime_to_string(date_obj: datetime, date_format: str = '%d/%m/%Y') -> str: + """ + Convert a datetime object to a date string. + + Args: + date_obj (datetime): The datetime object. + date_format (str, optional): The desired format of the date string. Default is '%d/%m/%Y'. + + Returns: + str: The date string. + + >>> date_obj = datetime(2023, 10, 15) + >>> datetime_to_string(date_obj) + '15/10/2023' + """ + date_string = date_obj.strftime(date_format) + return date_string + +if __name__ == "__main__": + import doctest + doctest.testmod() From 9223b5cd738ceccc54c89de26dba2cdb963abd87 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 17 Oct 2023 12:32:49 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- conversions/time_conversions.py | 41 +++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/conversions/time_conversions.py b/conversions/time_conversions.py index 6c3c9d8ef40e..b703a3619b46 100644 --- a/conversions/time_conversions.py +++ b/conversions/time_conversions.py @@ -1,15 +1,16 @@ from datetime import datetime, timedelta + def seconds_to_minutes(seconds: int) -> int: """ Convert seconds to minutes. - + Args: seconds (int): The number of seconds. - + Returns: int: The equivalent number of minutes. - + >>> seconds_to_minutes(60) 1 >>> seconds_to_minutes(300) @@ -20,16 +21,17 @@ def seconds_to_minutes(seconds: int) -> int: minutes = seconds // 60 return minutes + def minutes_to_hours(minutes: int) -> int: """ Convert minutes to hours. - + Args: minutes (int): The number of minutes. - + Returns: int: The equivalent number of hours. - + >>> minutes_to_hours(60) 1 >>> minutes_to_hours(120) @@ -40,16 +42,17 @@ def minutes_to_hours(minutes: int) -> int: hours = minutes // 60 return hours + def hours_to_days(hours: int) -> int: """ Convert hours to days. - + Args: hours (int): The number of hours. - + Returns: int: The equivalent number of days. - + >>> hours_to_days(24) 1 >>> hours_to_days(48) @@ -60,17 +63,18 @@ def hours_to_days(hours: int) -> int: days = hours // 24 return days -def string_to_datetime(date_str: str, date_format: str = '%Y-%m-%d') -> datetime: + +def string_to_datetime(date_str: str, date_format: str = "%Y-%m-%d") -> datetime: """ Convert a date string to a datetime object. - + Args: date_str (str): The date string. date_format (str, optional): The format of the date string. Default is '%Y-%m-%d'. - + Returns: datetime: The datetime object. - + >>> date_str = "2023-10-15" >>> date_obj = string_to_datetime(date_str) >>> date_obj.strftime('%Y-%m-%d') @@ -79,17 +83,18 @@ def string_to_datetime(date_str: str, date_format: str = '%Y-%m-%d') -> datetime date_obj = datetime.strptime(date_str, date_format) return date_obj -def datetime_to_string(date_obj: datetime, date_format: str = '%d/%m/%Y') -> str: + +def datetime_to_string(date_obj: datetime, date_format: str = "%d/%m/%Y") -> str: """ Convert a datetime object to a date string. - + Args: date_obj (datetime): The datetime object. date_format (str, optional): The desired format of the date string. Default is '%d/%m/%Y'. - + Returns: str: The date string. - + >>> date_obj = datetime(2023, 10, 15) >>> datetime_to_string(date_obj) '15/10/2023' @@ -97,6 +102,8 @@ def datetime_to_string(date_obj: datetime, date_format: str = '%d/%m/%Y') -> str date_string = date_obj.strftime(date_format) return date_string + if __name__ == "__main__": import doctest + doctest.testmod()