📄 2351.cpp
字号:
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char a[33][6]={"UTC", "GMT", "BST","IST", "WET" ,"WEST","CET" ,"CEST" ,"EET", "EEST" , "MSK", "MSD", "AST" ,"ADT" ,"NST" ,"NDT", "EST", "EDT",
"CST","CDT" ,"MST", "MDT", "PST", "PDT", "HST", "AKST", "AKDT", "AEST", "AEDT", "ACST", "ACDT", "AWST"} ;
char t[15],t1[6],c1[6],c2[6];
float b[32]={0,0,1,1,0,1,1,2,2,3,3,4,-4,-3,-3.5,-2.5,-5,-4,-6,-5,-7,-6,-8,-7,-10,-9,-8,10,11,9.5,10.5,8},sst;
int i,k,j,m,n,p,q,h,min,ch,cmin,ccmin[2];
cin>>k;
for (i=1;i<=k;i++)
{
h=0;
min=0;
cin>>t;
if (strcmp(t,"noon")==0)
{
h=12;
min=0;
}
else
{
if (strcmp(t,"midnight")==0)
{
h=24;
min=0;
}
else
cin>>t1;
}
cin>>c1>>c2;
for (j=0;j<32;j++)
{
if (strcmp(c1,a[j])==0)
m=j;
if (strcmp(c2,a[j])==0)
n=j;
}
if ((strcmp(t,"midnight")!=0)&&(strcmp(t,"noon")!=0))
{
for (j=0;j<15;j++)
if (t[j]==':')
{
p=j-1;
break;
}
for (j=0;j<=p;j++)
h=h*10+t[j]-'0';
for (j=p+2;j<15;j++)
if (t[j]=='\0')
{
q=j-1;
break;
}
for (j=p+2;j<=q;j++)
min=min*10+t[j]-'0';
if ((t1[0]=='p')&&(h!=12))
h=h+12;
if ((t1[0]=='a')&&(h==12))
h=0;
}
sst=b[n]-b[m];
if (((int(sst*2))%2)==0)
{
ch=h+sst;
if (ch>=24)
ch=ch-24;
if (ch<0)
ch=ch+24;
cmin=min;
}
else
{
if (sst>0)
{
ch=h+int((sst*2))/2;
cmin=min+30;
}
else
{
ch=h-int(0-(sst*2))/2;
cmin=min-30;
}
if (cmin>=60)
{
cmin=cmin-60;
ch=ch+1;
}
if (cmin<0)
{
cmin=cmin+60;
ch=ch-1;
}
if (ch>=24)
ch=ch-24;
if (ch<0)
ch=ch+24;
}
if (cmin<10)
{
ccmin[0]=0;
ccmin[1]=cmin;
}
if (cmin>=10)
{
ccmin[0]=cmin/10;
ccmin[1]=cmin-(cmin/10)*10;
}
if ((ch==0)&&(cmin==0))
cout<<"midnight"<<endl;
else
{
if ((ch==12)&&(cmin==0))
cout<<"noon"<<endl;
if (ch>12)
cout<<ch-12<<":"<<ccmin[0]<<ccmin[1]<<" p.m."<<endl;
if ((ch<12)&&(ch!=0))
cout<<ch<<":"<<ccmin[0]<<ccmin[1]<<" a.m."<<endl;
if ((ch==12)&&(cmin!=0))
cout<<ch<<":"<<ccmin[0]<<ccmin[1]<<" p.m."<<endl;
if ((ch==0)&&(cmin!=0))
cout<<12<<":"<<ccmin[0]<<ccmin[1]<<" a.m."<<endl;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -