用C语言实现:首先获取系统时钟,然后时钟数据格式为:年月日时分秒(YYYYMMDDHHMMSS)

各位大神帮忙看看:用C语言实现:首先获取系统时钟,然后时钟数据格式为:年月日时分秒(YYYYMMDDHHMMSS),所有数据均已数值方式表示。其中年分为2字节(低位在前,... 各位大神帮忙看看:
用C语言实现:首先获取系统时钟,然后时钟数据格式为:年月日时分秒(YYYYMMDDHHMMSS),所有数据均已数值方式表示。其中年分为2字节(低位在前,高位在后),其余为一个字节。如1997年6月21日10:32:55的表示为CD0706150A037.
展开
 我来答
月光疾风_Free
推荐于2017-12-15 · TA获得超过681个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:215万
展开全部

#include <stdio.h>

#include <time.h>

int main()
{
 time_t rawtime;
 struct tm * timeinfo;
 time ( &rawtime );
 timeinfo = localtime ( &rawtime );
 int year,month,day,hour,min,sec;
 year = 1900+timeinfo->tm_year;
 month = 1+timeinfo->tm_mon;
 day = timeinfo->tm_mday;
 hour = timeinfo->tm_hour;
 min = timeinfo->tm_min;
 sec = timeinfo->tm_sec;
 printf ( "当前时间:%4d-%02d-%02d %02d:%02d:%02d\n\n",year, month,day,hour,min,sec);
 printf ( "你需要的格式:%4d%02d%02d%02d%02d%02d\n\n",year, month,day,hour,min,sec);

 char hyy[2],lyy[2],MM[2],dd[2],hh[2],mm[2],ss[2];
 sprintf(hyy,"%02X",year/100);
 sprintf(lyy,"%02X",year%100);
 sprintf(MM,"%02X",month);
 sprintf(dd,"%02X",day);
 sprintf(hh,"%02X",hour);
 sprintf(mm,"%02X",min);
 sprintf(ss,"%02X",sec);

 printf("转化为16进制:%02s%02s%02s%02s%02s%02s%02s\n",hyy,lyy,MM,dd,hh,mm,ss);
 //exit(0);
 return 0;

说明:我用VC6.0现写的,运行结果截图如下: 

更多追问追答
追问
你太厉害了!!!还有个问题,我到时候要调用这个函数,所以我想把得出来的十六进制统一放到一个数组中,再输出。但是我放了以后就不合适了
char time[7]={hyy[0],lyy[0],MM[0],dd[0],hh[0],mm[0],ss[0]};

for(int j=0;j < 7;j++)
printf("转化为16进制:%02s\n",time[i);
您能不能再帮忙看看!!感谢感谢!!
追答
char time[7]={hyy[0],lyy[0],MM[0],dd[0],hh[0],mm[0],ss[0]};
同学,你这么写是错的,这是字符数组,不是整型数字;
我不是应经帮你把转化后的16进制存放到了数组中了吗,
就是这些数组啊:hyy[2],lyy[2],MM[2],dd[2],hh[2],mm[2],ss[2];就是为了方便你调用啊
比如,我要输出月份的16进制,就直接输出:
printf("%02s\n",MM);
xoaxa
2014-05-28 · TA获得超过8611个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3497万
展开全部
#include <stdio.h>
#include <time.h>  

int main () {
time_t rawtime;
time(&rawtime);
struct tm *timeinfo;
timeinfo = localtime(&rawtime);
printf("%04X%02X%02X%02X%02X%02X\n",
1900 + timeinfo->tm_year,
1 + timeinfo->tm_mon,
timeinfo->tm_mday,
timeinfo->tm_hour,
timeinfo->tm_min,
timeinfo->tm_sec
);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Linyar
2014-05-28 · TA获得超过757个赞
知道小有建树答主
回答量:180
采纳率:100%
帮助的人:244万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main ()
{
char szTime[32];
time_t tmtime;
struct tm *tmi;

//取当前时间
time(&tmtime);
tmi = localtime(&tmtime);

sprintf(szTime, "%04d", 1900 + tmi->tm_year);
unsigned short int iYear = atoi(szTime);

printf("%02X%02X%02X%02X%02X%02X%02X\n",
iYear&0x00ff,
iYear>>8,
1 + tmi->tm_mon,
tmi->tm_mday,
tmi->tm_hour,
tmi->tm_min,
tmi->tm_sec
);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式