写一个程序,将24小时格式时间转换为12小时格式。定义一个名为TimeMistake的异常类,处理用户输入的非法时间,比如10:65或者无效字符。
时间: 2024-02-24 16:55:32 浏览: 33
好的,我可以帮你写这个程序。以下是 Python 实现:
```python
class TimeMistake(Exception):
pass
def convert_time(time_str):
try:
hour, minute = map(int, time_str.split(':'))
if hour < 0 or hour > 23 or minute < 0 or minute > 59:
raise TimeMistake('Invalid time')
elif hour == 0:
return f'12:{minute:02d} AM'
elif hour < 12:
return f'{hour}:{minute:02d} AM'
elif hour == 12:
return f'12:{minute:02d} PM'
else:
return f'{hour - 12}:{minute:02d} PM'
except ValueError:
raise TimeMistake('Invalid time format')
try:
time_str = input('请输入24小时格式时间(HH:MM): ')
print(convert_time(time_str))
except TimeMistake as e:
print(f'Error: {e}')
```
首先定义了一个名为 `TimeMistake` 的异常类。`convert_time` 函数接受一个字符串参数,返回转换后的时间格式,如果时间字符串不合法则抛出 `TimeMistake` 异常。
函数内部先尝试将时间字符串解析为小时和分钟数,如果解析失败则抛出 `TimeMistake` 异常。然后判断小时和分钟数是否在合法范围内,如果不是则也抛出 `TimeMistake` 异常。
最后根据小时数的不同,返回不同的时间格式字符串。
在主程序中,先让用户输入时间字符串,然后调用 `convert_time` 函数转换并输出结果,如果发生异常则捕获并输出错误信息。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)