C语言中如何获取当前系统时间的小时

如果现在时间是08:37:39,如何获取小时8这个数,最好给出代码,谢谢各位大侠了~~... 如果现在时间是08:37:39,如何获取小时8这个数,最好给出代码,谢谢各位大侠了~~ 展开
 我来答
zyl0462
推荐于2018-03-15 · TA获得超过1082个赞
知道小有建树答主
回答量:433
采纳率:75%
帮助的人:323万
展开全部
程序主要通过当前系统日历的struct tm结构体获得,主要代码如下,
#include <stdio.h>
#include <time.h>
//程序功能输出当前时间在24H下的小时数
int main(int argc, char *argv[])
{
struct tm *ptr;
time_t lt;
time(<);//当前系统时间
ptr=localtime(<);//获取本地日历时间指针
printf("hour=%d(24H )\n",ptr->tm_hour);//输出24H下的小时数
return 0;
}

结构体tm定义如下,
struct tm {
int tm_sec; /* 秒–取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
int tm_year; /* 年份,其值从1900开始 */
int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
long int tm_gmtoff; /*指定了日期变更线东面时区中UTC东部时区正秒数或UTC西部时区的负秒数*/
const char *tm_zone; /*当前时区的名字(与环境变量TZ有关)*/
};
松甜恬0Je4ba
推荐于2018-03-01 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3288万
展开全部
#include <stdio.h>
#include <time.h>
void main ()
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "\007The current date/time is: %s", asctime (timeinfo) );
exit(0);
}
=================
#include <time.h> -- 必须的时间函数头文件
time_t -- 时间类型(time.h 定义)
struct tm -- 时间结构,time.h 定义如下:
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
time ( &rawtime ); -- 获取时间,以秒计,从1970年1月一日起算,存于rawtime
localtime ( &rawtime ); -- 转为当地时间,tm 时间结构
asctime ()-- 转为标准ASCII时间格式:
星期 月 日 时:分:秒 年
=========================================
你要的格式可这样输出:
printf ( "%4d-%02d-%02d %02d:%02d:%02d\n",1900+timeinfo->tm_year, 1+timeinfo->tm_mon,
timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
就是直接打印tm,tm_year 从1900年计算,所以要加1900,
月tm_mon,从0计算,所以要加1
其它你一目了然啦。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
摆渡FANS
2012-12-08 · 超过20用户采纳过TA的回答
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:62.7万
展开全部
#include<stdio.h>
#include<time.h>
void main(){
struct tm * tmptr;//时间的结构体
time_t secnow;
time(&secnow);
tmptr = localtime(&secnow);
int hour1,min1;
hour1 = tmptr->tm_hour;
printf("The time is %02d",hour1);//输出当前小时-----------这才是人家提问的要的时间的数字!
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loboho
2012-12-08 · TA获得超过506个赞
知道小有建树答主
回答量:441
采纳率:100%
帮助的人:403万
展开全部
#include<time.h>
#include<stdio.h>
int main()
{
struct tm *t;
time_t tt;
time(&tt);
t=localtime(&tt);
printf("%4d年%02d月%02d日 %02d:%02d:%02d\n",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgao622
2012-12-08 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6548
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
#include<stdio.h>
#include<time.h>
void main()
{
tm t;
_getsystime(&t);
printf("%d:%d:%d\n", t.tm_hour, t.tm_min, t.tm_sec);//t.tm_hour
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式