c语言输入二十四时制转换十二小时制
时间: 2024-10-09 18:06:02 浏览: 49
C语言将24小时制转换为12小时制的方法
在 C 语言中,将二十四小时制 (24H) 转换为十二小时制 (12H) 需要通过一些条件判断和数学计算来完成。以下是一个简单的步骤概述:
1. 用户从标准输入(通常是 `scanf` 函数)获取二十四小时制的时间,如 "15:30"。
2. 分割时间成小时(hour)和分钟(minute),通常会用到字符串处理函数(如 `sscanf` 或 `strtok`)。
3. 检查小时数。如果小于12,则直接作为12小时制显示;如果大于等于12,需要调整到12小时制。例如,13点表示下午1点,18点表示晚上6点。
4. 如果小时数是0,那么它代表的是前一天的午夜12点,所以转换为12小时制就是12点。
5. 将结果组合成字符串,例如 "15:30" 变为 "下午3:30" 或者 "18:00" 变为 "晚上6:00"。
下面是一个简化的示例代码片段(假设已有一个函数 `get_hour_minute(char *time_str)` 来获取小时和分钟):
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void convert_to_12h(char *input) {
char hour[5], minute[6];
if (sscanf(input, "%s:%s", hour, minute) != 2) {
printf("Invalid time format.\n");
return;
}
int hour_num = atoi(hour);
int hour_12h;
if (hour_num >= 12)
hour_12h = hour_num - 12; // 下午
else
hour_12h = hour_num; // 上午
printf("%d:%s\n", hour_12h, minute); // 结果格式:"12:00" 或 "03:30" 等
}
int main() {
char input_time[] = "15:30";
convert_to_12h(input_time);
return 0;
}
```
阅读全文