输出年月日时分秒的小程序

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#define LEN 32
typedef unsigned int ui;
typedef struct {
        char year[LEN];
        char month[LEN];
        char day[LEN];
        char hour[LEN];
        char min[LEN];
        char sec[LEN];
} time_val;//字符型的time_val结构体

typedef struct {
        ui iYear;
        ui iMonth;
        ui iDay;
        ui iHour;
        ui iMin;
        ui iSec;
} int_time;//转unsigned int后的int_time结构体

void store_format_time(time_val *tt, char *format_time){//保存stdin中的格式化时间类型到 time_val 中
        time_val *t = tt;
        char *temp = format_time;
        strncpy(t->year  , temp   , 4);
        strncpy(t->month , temp+=5, 2);
        strncpy(t->day   , temp+=3, 2);
        strncpy(t->hour  , temp+=3, 2);
        strncpy(t->min   , temp+=3, 2);
        strncpy(t->sec   , temp+=3, 2);
}

void math_time(int_time it, ui math_sec){//这个函数并没有很完整,我只写了增加一个秒数,并且只判断到了 分 ,后面我会继续改进的
        ui res_sec = math_sec + it.iSec;
        it.iSec = (res_sec/60 > 0)?(res_sec%60):res_sec;
        it.iMin = ((res_sec/60 + it.iMin)/60 > 0)?((res_sec/60 + it.iMin)%60):(res_sec/60 + it.iMin);
        printf("%4d-%02d-%02d %02d:%02d:%02d\n", it.iYear, it.iMonth, it.iDay, it.iHour, it.iMin, it.iSec);
}

int_time to_int(time_val *tt){//time_val结构体  转 int_time类型
        int_time it;
        it.iYear  = atoi(tt->year);
        it.iMonth = atoi(tt->month);
        it.iDay   = atoi(tt->day);
        it.iHour  = atoi(tt->hour);
        it.iMin   = atoi(tt->min);
        it.iSec   = atoi(tt->sec);
        return it;
}

int main(int argc, char *argv[]){
        time_val *t = (time_val *)malloc(sizeof(time_val));
        int_time it;
        assert(t);
        char time_v[128];
        printf("Format time type is 2011-07-05 13:22:00\n");
        printf("Please input time:");
        gets(time_v);
        store_format_time(t, time_v);
        to_int(t);
        it = to_int(t);
        math_time(it, 40);
        free(t);
}

主要还是写代码写少了,最近准备专攻一下语法了,一直都在了解底层..

解释一下,注释怎么贴不上??发了个克的...

time_val;//字符型的time_val结构体,用来接收.

int_time;//用来接收  转unsigned int后的int_time结构体

store_format_time()//用来保存stdin中的格式化时间类型到 time_val 中

math_time()//这个函数并没有很完整,我只写了增加一个秒数,并且只判断到了 分,后面可能,可能吧,可能再跟进一下,哈哈!

to_int()//time_val结构体 转 int_time类型

看一下执行结果:

[root@kevin /tmp]$./a.out 
Format time type is 2011-07-05 13:22:00
Please input time:2010-02-12 14:20:30
2010-02-12 14:21:10

默认加了40秒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值