时制转换24~12

该程序使用C++编写,实现了将24小时制的时间转换为12小时制,并根据输入的时间判断是AM还是PM。用户输入小时和分钟,程序会自动调整并输出相应格式的时间。
#include <iostream>  
using namespace std;  
int convert(int&hour,int&minute,char&form);  
int main()  
{  
  int hour,minute;  
  char form;  
  cin>>hour>>minute;  
  convert(hour,minute,form);  
  if(form=='A')  
  cout<<hour<<":"<<minute<<" "<<"AM";  
  else  
    cout<<hour<<":"<<minute<<" "<<"PM";  
    return 0;  
}  
int convert(int&hour,int&minute,char&form)  
{  
if(hour>12 && hour<24)  
{  
hour=hour-12;  
  form='P';  
}else if(hour == 12){  
    form='P';  
}  
  else  
  {  
 form='A';  
  }  
  return form;  
}

将24小时制转为12小时制

### 实现12小时24小时转换 为了完成从12小时间向24小时间的转换,可以编写一段简单的C++程序来解析输入字符串并相应调整小时数。这里提供一种方法,该方法不依赖于特定库而是基于标准逻辑判断[^1]。 ```cpp #include <iostream> #include <string> bool isAM(const std::string& ampm){ return (ampm == "am" || ampm == "AM"); } int convertHour(int hour, bool isAm){ if(isAm && hour == 12) return 0; else if(!isAm && hour != 12) return hour + 12; else return hour; } std::string twelveToTwentyFour(const std::string &timeStr){ int colonPos = timeStr.find(':'); int spacePos = timeStr.rfind(' '); int hours = std::stoi(timeStr.substr(0,colonPos)); int minutes = std::stoi(timeStr.substr(colonPos+1,spacePos-colonPos-1)); std::string ampm = timeStr.substr(spacePos+1); int convertedHours = convertHour(hours,isAM(ampm)); char buffer[6]; sprintf(buffer,"%02d:%02d",convertedHours,minutes); return std::string(buffer); } ``` 上述代码定义了几个辅助函数用于处理不同部分的任务:`isAM()`用来检测给定参数表示上午还是下午;`convertHour()`负责根据是否为上午以及当前小时数决定最终返回哪个数值;最后由`twelveToTwentyFour()`整合整个流程,接收形如 `"hh:mm am/pm"` 的字符串作为输入,并输出对应的24小时格式化后的结果。 对于更复杂的应用场景或是希望利用现有类库简化开发工作量的情况下,则可能考虑采用第三方库比如Boost.DateTime 或者 POCO 库中的日期间组件来进行此类操作[^3]。然而在这个具体例子中并没有直接涉及到这些高级特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值