📄 time zones.txt
字号:
#include<stdio.h>
#include<string.h>
char abbre[32][5]={"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"};
float abbtime[]={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};
int main()
{
int n;
char c;
scanf("%d",&n);
c=getchar();
while(n--)
{
char tmp[25],zone1[5],zone2[5],area[10]={'\0'};
int hour,min,i,num1,num2;
gets(tmp);
switch(tmp[0])
{
case 'n':hour=12;min=0;sscanf(tmp,"%s %s %s",area,zone1,zone2);
break;
case 'm':hour=0;min=0;sscanf(tmp,"%s %s %s",area,zone1,zone2);
break;
default:sscanf(tmp,"%d:%d %s %s %s",&hour,&min,area,zone1,zone2);
break;
}
if(strcmp(area,"p.m.")==0&&hour!=12)
hour+=12;
if(strcmp(area,"a.m.")==0&&hour==12)
hour=0;
min+=hour*60;
for(i=0;i<32;i++)
{
if(strcmp(zone1,abbre[i])==0)
{
num1=i;
break;
}
}
min-=(int)(abbtime[num1]*60);
for(i=0;i<32;i++)
{
if(strcmp(zone2,abbre[i])==0)
{
num2=i;
break;
}
}
min+=(int)(abbtime[num2]*60);
if(min>=0)
{
hour=min/60;
min-=hour*60;
while(hour>=24)
hour-=24;
}
else if(min<0)
{
min+=24*60;
hour=min/60;
min-=hour*60;
}
if(hour>12)
{
printf("%d:%02d p.m.\n",hour-12,min);
}
else if(hour<12&&hour!=0&&!(hour==0&&min==0))
{
printf("%d:%02d a.m.\n",hour,min);
}
else if(min==0&&hour==0)
{
printf("midnight\n");
}
else if(hour==0)
{
printf("%d:%02d a.m.\n",hour+12,min);
}
else if(hour==12&&min==0)
{
printf("noon\n");
}
else if(hour==12&&min!=0)
{
printf("%d:%02d p.m.\n",hour,min);
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -