Source code for TidalPy.utilities.string_helper.string_helper

from datetime import datetime
from math import floor


[docs] def convert_time_to_hhmmss(time: float, return_days: bool = False): """ Convert time from seconds to hours, minutes, seconds Parameters ---------- time : float Time in seconds return_days : bool = False If True, then days will be calculated in addition to hh, mm, ss Returns ------- hhmmss_str : str str with hours minutes and seconds """ # Make sure input is a float time = float(time) output_str = '' # Find number of days if return_days: days = floor(time / (24 * 86400)) day_remainder = time % (24 * 86400) output_str += f'{days:02.0f} Days - ' else: day_remainder = time # Find Hours hours = floor(day_remainder / (60 * 60)) hour_remainder = day_remainder % (60 * 60) output_str += f'{hours:02.0f}::' # Find Minutes minutes = floor(hour_remainder / 60) minute_remainder = hour_remainder % 60 output_str += f'{minutes:02.0f}:' # Find Seconds seconds = floor(minute_remainder) seconds_remainder = minute_remainder % 1 output_str += f'{seconds:02.0f}:' # This function likely won't be called for runs that take less than a second or if it is that info will not # be particularly helpful to the user (there are better ways to do high performance time tracking). # So lets just drop everything less than a second. del seconds_remainder return output_str
[docs] def timestamped_str( date: bool = True, time: bool = True, second: bool = False, millisecond: bool = False, string_to_stamp: str = '', preappend: bool = True, separation: str = '_', provided_datetime=None ) -> str: """ Creates a timestamp string at the current time and date. Parameters ---------- date : bool = True Whether or not the date will be included in the timestamp time : bool = True Whether or not the time will be included in the timestamp second : bool = False Whether or not the second will be included in the timestamp millisecond : bool = False Whether or not the date will be included in the timestamp string_to_stamp : str = None Another string to add before or after timestamp preappend : bool = True Determines where the timestamp will be appended relative to the provided string separation : str = '_' Character that separates the timestamp and any provided string provided_datetime: datetime.datetime = None A datetime.datetime object. If none provided the function will use call time Returns ------- timestamped_str : str String with the current date and/or time added on. """ # Exit ASAP if nothing was requested. if not date and not time and not millisecond: return string_to_stamp format_str = '' if date: format_str += '%Y%m%d' if time: if date: format_str += '-' format_str += '%H%M' if second: format_str += '%S' if millisecond: format_str += '-' format_str += '%f' if provided_datetime is None: date_time = datetime.now() else: date_time = provided_datetime timestamp = date_time.strftime(format_str) if string_to_stamp == '': return timestamp if preappend: return f'{timestamp}{separation}{string_to_stamp}' else: return f'{string_to_stamp}{separation}{timestamp}'