扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#include stdio.h
松桃网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
#include time.h
int main()
{
time_t timep; //时间变量,从1970年1月1日0时起的秒数
struct tm * p; //时间结构,含年月日时分秒星期几,一年中第几天,夏时制等成员。年从1900起算,月从0起算,...
time(timep); // 获取当前时间,从1970年1月1日0时起的秒数
p = gmtime(timep); // 获取UTC时间 结构成员数值们
printf("%d %d %d\n",1900+p-tm_year, 1+p-tm_mon, p-tm_mday); //输出UTC时间的年月日
p = localtime(timep); // 获取本地 时间 结构成员数值们
printf("%d %d %d\n",1900+p-tm_year, 1+p-tm_mon, p-tm_mday); //输出本地时间年月日
return 0;
}
#include stdio.h
int main()
{
int year,month,day;//年月日
int judge,i;
int sum=0;//标记天数
int date[2][12]={
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};//储存闰年和非闰年每一月的天数
printf("输入年月日:");
scanf("%d %d %d",year,month,day);
judge=(year%4==0)||(year%400==0 year%100!=0);
//判断年份是不是闰年 是闰年judge就是1;否则就是0
for(i=0;imonth-1;i++)//加month之前的所有天数
sum+=date[judge][i];
sum+=day;//加当天月份的天数day
printf("它是%d年中的第%d天\n",year,sum);
return 0;
}
c语言时间函数:
1、获得日历时间函数:
可以通过time()函数来获得日历时间(Calendar Time),其原型为:time_t time(time_t * timer);
如果已经声明了参数timer,可以从参数timer返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数。如果参数为空(NUL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间:
2、获得日期和时间函数:
这里说的日期和时间就是平时所说的年、月、日、时、分、秒等信息。从第2节我们已经知道这些信息都保存在一个名为tm的结构体中,那么如何将一个日历时间保存为一个tm结构的对象呢?
其中可以使用的函数是gmtime()和localtime(),这两个函数的原型为:
struct tm * gmtime(const time_t *timer);
struct tm * localtime(const time_t * timer);
其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将日历时间转化为本地时间。比如现在用gmtime()函数获得的世界标准时间是2005年7月30日7点18分20秒,那么用localtime()函数在中国地区获得的本地时间会比世界标准时间晚8个小时,即2005年7月30日15点18分20秒。
你的这段代码有问题,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;
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流