1332A+B

/*
作者: 
厦门理工学院
    计算机与信息工程学院 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;
} 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值