#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语言输入年份和天数输出对应的年月日等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)