1332A+B

来源:互联网 发布:mysql offset 编辑:程序博客网 时间:2024/05/29 19:51
/*作者: 厦门理工学院    计算机与信息工程学院 FnLock时间:2017年11月12日12:56:34*/ #include <stdio.h>//将输入格式的时间转化为秒以方便计算 int changeSecond(char arr[]){    int second=0;    int i;    int part1=0;    int part2=0;    int part3=0;    part1=((arr[3]-48)*10+(arr[4]-48))*3600;    part2=((arr[6]-48)*10+(arr[7]-48))*60;    part3=((arr[9]-48)*10+(arr[10]-48))*1;    second=part1+part2+part3;    return second;}//确定转化后的时间是AM还是PM char changeAB(char arr[],int second,int b){    char AP;    int backup=second-b;    char c=arr[0];    int control;    if(c=='A')    {        control=1;//1代表AM     }    else    {        control=-1;//-1代表PM     }    int i;    for(i=1;i<=b;i++)//每次经过12:00:00改变一次AM和PM     {        if((backup+i)%(12*3600)==0)        {            control=-control;        }    }    if(control==1)  AP='A';    else AP='P';    return AP;}//将秒转化为相应的输出格式 void changeAmPm(char arr[],int second,int b){    int backup=second;    int hour=second/3600;    second-=hour*3600;    int minute=second/60;    second-=minute*60;    while(hour>12)    {        hour-=12;    }    printf("%cM %02d:%02d:%02d",changeAB(arr,backup,b),hour,minute,second);}int main(void){    char arr[20];//定义一个字符数组来存放输入的字符     gets(arr);    int b;    scanf("%d",&b);    int second;    second=changeSecond(arr)+b;//将输入的时间转换为秒再加上输入的b     changeAmPm(arr,second,b);//将 现在的秒数转化为相应的格式输出     return 0;}