#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;
}*/
运行结果