def _format( h: int, m: int, s: int, fmt: str = "24h", precision: Union[str, None] = None, ) -> str: text = "" if fmt == "6h": text = _format_6h(h) elif fmt == "m6h": text = _format_m6h(h) elif fmt == "24h": text = _format_24h(h) else: raise NotImplementedError(f"Time format not supported: {fmt}") if precision == "m" or precision == "s": if (m == 30 and (s == 0 or precision == "m") and (fmt == "6h" or fmt == "m6h")): text += "ครึ่ง" else: text += num_to_thaiword(m) + "นาที" if precision == "s": text += num_to_thaiword(s) + "วินาที" else: if m: if m == 30 and s == 0 and (fmt == "6h" or fmt == "m6h"): text += "ครึ่ง" else: text += num_to_thaiword(m) + "นาที" if s: text += num_to_thaiword(s) + "วินาที" return text
def _format_6h(h: int) -> str: """ Thai time (6-hour clock) """ text = "" if h == 0: text += "เที่ยงคืน" elif h < 7: text += "ตี" + num_to_thaiword(h) elif h < 12: text += num_to_thaiword(h - 6) + "โมงเช้า" elif h == 12: text += "เที่ยง" elif h < 18: if h == 13: text += "บ่ายโมง" else: text += "บ่าย" + num_to_thaiword(h - 12) + "โมง" elif h == 18: text += "หกโมงเย็น" else: text += num_to_thaiword(h - 18) + "ทุ่ม" return text
def _format_m6h(h: int) -> str: """Thai time (modified 6-hour clock).""" text = "" if h == 0: text += "เที่ยงคืน" elif h < 6: text += "ตี" + num_to_thaiword(h) elif h < 12: text += num_to_thaiword(h) + "โมง" elif h == 12: text += "เที่ยง" elif h < 19: text += num_to_thaiword(h - 12) + "โมง" else: text += num_to_thaiword(h - 18) + "ทุ่ม" return text
def _format_24h(h: int) -> str: """Thai time (24-hour clock).""" text = num_to_thaiword(h) + "นาฬิกา" return text