如何让c语言自动读取电脑上的日期及时间

如何让c语言自动读取电脑上的日期及时间,第1张

C语言中读取系统时间函数为time(),其函数原型为:

#include <timeh>

time_t time( time_t ) ;

time_t就是long,函数返回从1970年1月1日(MFC是1899年12月31日)0时0分0秒,到现在的的秒数。可以调用ctime()函数进行时间转换输出:

char ctime(const time_t timer);

将日历时间转换成本地时间,按年月日格式,进行输出,如:

Wed Sep 23 08:43:03 2015

C语言还提供了将秒数转换成相应的时间结构的函数:

struct tm gmtime(const time_t timer); //将日历时间转化为世界标准时间(即格林尼治时间)

struct tm localtime(const time_t timer); //将日历时间转化为本地时间

将通过time()函数返回的值,转换成时间结构struct 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()为负。/

};

编程者可以根据程序功能的情况,灵活的进行日期的读取与输出了。

例如:

#include<timeh>

main()

{

time_t timep;

struct tm p;

time (&timep);

p=gmtime(&timep);

printf("%d\n",p->tm_sec); /获取当前秒/

printf("%d\n",p->tm_min); /获取当前分/

printf("%d\n",8+p->tm_hour);/获取当前时,这里获取西方的时间,刚好相差八个小时/

printf("%d\n",p->tm_mday);/获取当前月份日数,范围是1-31/

printf("%d\n",1+p->tm_mon);/获取当前月份,范围是0-11,所以要加1/

printf("%d\n",1900+p->tm_year);/获取当前年份,从1900开始,所以要加1900/

printf("%d\n",p->tm_yday); /从今年1月1日算起至今的天数,范围为0-365/

}

#include<stadioh>

main()

{ int year,year1,month,month1,day,day1,age;

printf("请输入您的生日:");

scanf("%d %d %d",&year,&month,&day);

printf("请输入当前日期:");

scanf("%d %d %d",&year1,&month1,&day1);

if(year1==year)

age=0;

else

{age=year1-year;

if(month1<month||(month1==month&&day1<day))

age=age-1;

}

printf("您的年龄是:%d",age);

}

大概就是这个样子,我没有调试,可能有错误,但应该都是小问题,你自己调试一下,觉得哪儿不妥,可以自己改动。

C语言输入年份和天数输出对应的年月日的源代码如下:

#include <iostream>

int day(int &year, int &month);

int main()

{

int year{};

int month{};

std::cout << "请输入年和月(空格隔开):";

std::cin >> year >> month;

std::cout << "该月天数:" << day(year, month) << '\n';

return 0;

}

扩展资料

1、C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间 *** 作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。

2、有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。

首先,你的闰年判断就有问题。教你个口诀:“四年一润,一百年不润,四百年再润”。

其实就可以用if(yr%4==0||yr%100!=0&&yr%400==0){那么是闰年}

你的检验判断也可以利用mont数组的,首先判断是不是在闰年,然后判断输入days是不是大于的mont[mn](如果是闰年要判断二月+1)。

需要利用C语言的时间函数time和localtime,具体说明如下:

一、函数接口介绍:

1、time函数。

形式为time_t time (time_t __timer);

其中time_t为timeh定义的结构体,一般为长整型。

这个函数会获取当前时间,并返回。 如果参数__timer非空,会存储相同值到__timer指向的内存中。

time函数返回的为unix时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

由于是秒作为单位的,所以这并不是习惯上的时间,要转为习惯上的年月日时间形式就需要另外一个函数了。

2、localtime函数。

形式为struct tm localtime (const time_t __timer);

其中tm为一个结构体,包含了年月日时分秒等信息。

这种结构是适合用来输出的。

这个简单,用以字符串str[20]={身份z号码};出生月日就是倒数第7个元素到第14个元素结束;

用一个for循环,如str[20]="45032519901016127X";for(i=6;i<=13;i++) putchar(str[i]);就可以了

结果是19901016,有木有?

以上就是关于如何让c语言自动读取电脑上的日期及时间全部的内容,包括:如何让c语言自动读取电脑上的日期及时间、c语言编写程序 获取当前日期并计算X天后的年月日。、C语言输入年份和天数输出对应的年月日等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9587301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存