1332A+B

本文介绍了一个简单的C语言程序,该程序能够将输入的时间格式(如HH:MM:SS AM/PM)转换为秒数,并根据给定的时间偏移量进行调整,最后输出调整后的时间,同时标明AM/PM。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值