快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

c语言计算年月日函数,c语言中计算时间的函数

C语言中有没有能显示系统日期和时间的函数?

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

创新互联建站从2013年开始,是专业互联网技术服务公司,拥有项目网站设计制作、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元犍为做网站,已为上家服务,为犍为各地企业和个人服务,联系电话:18980820575

#include time.h

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()为负。*/

};

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

例如:

#includetime.h

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*/

}

用C语言函数编写求年月日的程序。我想知道我这个程序哪里错了,语法没有错,但是答案不对。

你的这段代码有问题,for(i=1;im;i++)

{m=month(m,y);

sum=sum+m;}你这样写,就是将月份重复的加了,如果是三月份,你将会发现你加了好多次,自然就会出现800多天了,下面我将代码改进,答案也是对的。

#include stdio.h

#include math.h

int year(int year);

int month(int month,int year);

void main()

{

int y,m,d,sum,i,n;

printf("请输入年月日\n");

scanf("%d%d%d",y,m,d);

y=year(y);

sum=0;

n=0;//定义一个n,用于每个月份天数相加

for(i=1;im;i++)

{

n=month(m,y);//将你的m替换为n,结果就对了

sum=sum+n;

}

sum=sum+d;

printf("是第%d天",sum);

}

int year(int year)

{

if( (year%4==0 year%100!=0) || (year%400==0) ) 

return (366);  

else return (365);

}

int month(int month,int year)

{

switch(month)

{

case 1:   

case 3:

case 5: 

case 7:

case 8:

case 10:

case 12:

return (31);

break;

case 2:

{

if (year==366)

return(29);

else return(28);

break;

}

default: return(30);

break;

}

}

用c语言如何获取系统当前时间的函数?

方法一,#includetime.h

int 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 stdio.h

#include time.h

int main ()

{

time_t t

struct tm * lt;    time (t);//获取Unix时间戳。

lt = localtime (t);//转为时间结构。

printf ( "%d/%d/%d %d:%d:%d\n",lt-tm_year+1900, lt-tm_mon, lt-tm_mday,

lt-tm_hour, lt-tm_min, lt-tm_sec);//输出结果

return 0;}

扩展资料

1、CTimeSpan类

如果想计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下:

CTime t1( 1999, 3, 19, 22, 15, 0 );

CTime t = CTime::GetCurrentTime();

CTimeSpan span=t-t1; //计算当前系统时间与时间t1的间隔

int iDay=span.GetDays(); //获取这段时间间隔共有多少天

int iHour=span.GetTotalHours(); //获取总共有多少小时

int iMin=span.GetTotalMinutes();//获取总共有多少分钟

int iSec=span.GetTotalSeconds();//获取总共有多少秒

2、timeb()函数

_timeb定义在SYS\TIMEB.H,有四个fields

dstflag

millitm

time

timezone

void _ftime( struct _timeb *timeptr );

struct _timeb timebuffer;

_ftime( timebuffer );

参考资料来源:百度百科:time函数

用C语言写一个函数,给出年月日,计算该日是该年的第几天 用#include开头的

代码如下:

#include iostream

using namespace std;

int leap_year(int n)

{

if(n%400==0||(n%4==0  n%100!=0))

return 1;

else

return 0;

}

int main()

{

int year,month,day;

int dayCount=0,i;

int mon[]={31,28,31,30,31,30,31,31,30,31,30,31};

cout"请输入当前的年,月,日: ";

cinyearmonthday;

for(i=0;imonth-1;i++)

dayCount+=mon[i];

if(month2)

dayCount+=day+leap_year(year);

else

dayCount+=day;

cout"该日是该年的第几天: "dayCountendl;

return 0;

}


分享标题:c语言计算年月日函数,c语言中计算时间的函数
网页链接:http://6mz.cn/article/dsgiogc.html

其他资讯