C语言获取当前的时间的具体某一项值

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
void getMonth(char now[],int num);
void getData(char now[],int num);
void getHour(char now[],int num);
void getMinute(char now[],int num);
void getSecond(char now[],int num);
void getYear(char now[],int num);


char month[8];
char data[10];
char hour[10];
char minute[10];
char second[10];
char year[10];

int main()
{
    time_t t;    //time_t是一种类型,定义time_t类型的t
    time(&t);    //取得当前时间
  //  printf("%s\n",ctime(&t));      // ctime(&t)将日期转为字符串并打印
    char now[100];
    strcpy(now,ctime(&t));
    printf("%s\n",now);        //打印当前时间
    int num;
    num=strlen(now);    //求字符串长度
    getMonth(now,num);
    getData(now,num);
    getHour(now,num);
    getMinute(now,num);
    getSecond(now,num);
    getYear(now,num);
    return 0;
}

void getMonth(char now[],int num)       //获取月份分别是:
//一月Jan,二月Feb,三月Mar,四月Apr,五月May,六月Jun,七月Jul,八月Aug,九月Sep,十月Oct,十一月Nov,十二月Dec
//九月的缩写应该是Sept但是由于在代码中只能获取三个字符,所以这里获取的结果是Sep
{
    for(int i=0; i<num; i++)
    {
        if(now[i]==' ')   //找到第一个空格,然后将空格之后的数据读入全局变量month中
        {
            int time=i+1;
            int j=0;
            while(j<3)
            {
                month[j]=now[time];
                time++;
                j++;
            }
           printf("%s\n", month);   //打印当前的月份
            break;
        }
    }
}

void getData(char now[],int num)    //获取日期,今天是几号
{
    int time=0;
    for(int i=0; i<num; i++)
    {
        if(now[i]==' ')
            time++;
        if(now[i]==' '&&time==2)
        {
            int kk=i+1;
            int j=0;
            while(j<2)
            {
                data[j]=now[kk];
                kk++;
                j++;
            }
            printf("%s\n", data);
            break;
        }
    }
}

void getHour(char now[],int num)   //获取当前的小时
{
    int time=0;
    for(int i=0; i<num; i++)
    {
        if(now[i]==' ')
            time++;
        if(now[i]==' '&&time==3)
        {
            int kk=i+1;
            int j=0;
            while(j<2)
            {
                hour[j]=now[kk];
                kk++;
                j++;
            }
            printf("%s\n", hour);
            break;
        }
    }
}

void getMinute(char now[],int num)    //获取当前时间的分钟
{
    int time=0;
    for(int i=0; i<num; i++)
    {
        if(now[i]==':')
            time++;
        if(now[i]==':'&&time==1)
        {
            int kk=i+1;
            int j=0;
            while(j<2)
            {
                minute[j]=now[kk];
                kk++;
                j++;
            }
            printf("%s\n", minute);
            break;
        }
    }
}

void getSecond(char now[],int num)    //获取当前时间的秒数
{
    int time=0;
    for(int i=0; i<num; i++)
    {
        if(now[i]==':')
            time++;
        if(now[i]==':'&&time==2)
        {
            int kk=i+1;
            int j=0;
            while(j<2)
            {
                second[j]=now[kk];
                kk++;
                j++;
            }
            printf("%s\n", second);
            break;
        }
    }
}


void getYear(char now[],int num)   //获取当前时间的年份
{
    int time=0;
    for(int i=0; i<num; i++)
    {
        if(now[i]==' ')
            time++;
        if(now[i]==' '&&time==4)
        {
            int kk=i+1;
            int j=0;
            while(j<4)
            {
                year[j]=now[kk];
                kk++;
                j++;
            }
            printf("%s\n", year);
            break;
        }
    }
}

/*int main(void)
{
    time_t tim;    //time_t是一种类型,定义time_t类型的tim
    struct tm *at;
    char now[80];
    time(&tim);    //获取当前时间
    at=localtime(&tim);
    strftime(now,79,"%Y-%m-%d\n%H:%M:%S\n",at);
    puts(now);   //打印字符串
    return 0;
}*/

运行结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值