import time


class ElapsedTime:
    """処理実行時間計測クラス"""
    def __init__(self) -> None:
        """このクラスの新たなインスタンスを初期化します。"""
        self.__start = time.perf_counter()
    
    @property
    def of(self):
        """インスタンス化してからの経過時間をhh:mm:ssの形式にフォーマットして返す
        Returns:
            str: 時分秒形式の経過時間
        """
        elapsed_time = time.perf_counter() - self.__start
        h, rem = divmod(elapsed_time, 3600)
        m, s = divmod(rem, 60)
        h_str = f'{h:02.0f} hour ' if h > 0.0 else ''
        m_str = f'{m:02.0f} min ' if m  > 0.0 else ''
        s_str = f'{s:06.02f} sec' if s  > 0.0 else ''
        return f"{h_str}{m_str}{s_str}"
