例如:24小时制转化12小时制的话输入13:50转换为1:50pm
例如:12小时制转化24小时制的话输入1:50pm转换为13:50
代码如下,如有帮助,请采纳一下,谢谢。
#include <iostream>
#include <string>
using namespace std;
//24转12
string trans24212(string ss)
{
int index = ss.find(':');
if (index <= 0)
{
return "";
}else
{
string hour = ss.substr(0,index);
string mint = ss.substr(index+1,ss.length() - index-1);
int hh = atoi(hour.c_str());
if(hh >=12)
{
hh = hh -12;
char buf[4] = {0};
itoa(hh,buf,10);
string nh = buf;
nh = nh + ":"+mint+"pm";
return nh;
}else
return ss+"am";
}
}
//12转24
string trans12224(string ss)
{
int len = ss.length();
int flag = -1;
int i=0;
for (i = 0;i<len;i++)
{
if(ss.at(i) == 'a' || ss.at(i) == 'A')
{
flag = 0;//表示上午
break;
}else if (ss.at(i) == 'p' || ss.at(i) == 'P')
{
flag = 1;//表示下午
break;
}
}
int index = ss.find(':');
string hour = ss.substr(0,index);
string mint = ss.substr(index+1,i - index-1);
if (flag == 0)
{
return hour + ":" + mint;
}else if(flag == 1)
{
int hh = atoi(hour.c_str());
hh += 12;
char buf[4]={0};
itoa(hh,buf,10);
string ns = buf;
return ns+":"+mint;
}else
return "";
}
int main()
{
string s = trans24212("13:20");
string s2 = trans12224("1:30pm");
cout << s << endl;
cout << s2 << endl;
return 0;
}