当前位置:首页 » 编程语言 » c语言天数是多少
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言天数是多少

发布时间: 2023-01-21 06:58:11

‘壹’ 用c语言表达:求两个日期之间有多少天输入1900 1 1到3000 12 31时误差很大,而其它测试数据都通过

可以这样做:编写一个求从1.1.1到y.m.d的总天数的函数(比如 int days(int,int,int)),然后调用这个函数即可。前看下面程序:
#include <stdio.h>

int days(int y,int m,int d); /* 求1.1.1~y.m.d的天数 */
inline int isleap(int y); /* 判断y年是否闰年 */

void main(){
int y=2011,m=12,d=28;
int ds=days(y+1,1,1)-days(y,m,d);
printf("%d\n",ds);
}

/* 参数:y,m,d=年,月,日 */
int days(int y,int m,int d){
int ds[12]={0,31,59,90,120,151,181,212,243,273,304,334}; /* ds[i]=平年i+1月1日前的天数,i=0,1,... */
int t; /* 总天数 */
t=365*(y-1)+(y-1)/4-(y-1)/100+(y-1)/400; /* 到y-1年底的总天数 */
t+=ds[m-1]; /* 到y-1年m-1月底的总天数 */
t+=((m<=2) ? 0 : isleap(y) ? 1 : 0); /* m>2时,闰年加1天 */
t+=d; /* 到y-1年m-1月d日的总天数 */
return t; /* 总天数 */
}

/* 判断y年是否闰年,是则返回非0,否则返回0 */
int isleap(int y){
return (y%4==0 && y%100!=0 || y%400==0);
}

‘贰’ 用c语言编写一程序,用户输入月份,计算该月有多少天

同意楼上几位的回答,没有年份是算不出来的.再一个要这个月有多少天?用脑子算呀!如果说有把年份一块输入的话,算这个日期之前的一年里的总天数,我这倒是有个不错的程序...
main()
{
int
day,month,year,sum,leap;
printf("\nplease
intput
year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)
{
case
1:sum=0;break;
case
2:sum=31;break;
case
3:sum=59;break;
case
4:sum=90;break;
case
5:sum=120;break;
case
6:sum=151;break;
case
7:sum=181;break;
case
8:sum=212;break;
case
9:sum=243;break;
case
10:sum=273;break;
case
11:sum=304;break;
case
12:sum=334;break;
default:printf("data
error");break;
}
sum=sum+day;
if(year%400==0||(year%4==0&&year%100!=0))
leap=1;
else
leap=0;
if(leap==1&&month>2)
sum++;
printf("it
is
the
%dth
day
of
the
year.",sum);
}

‘叁’ c语言关于计算天数

m[12]=(31,28,31,30,31,30,31,31,30,31,30,31);

这句的写法是错的
一、初始化应该在数组定义时
二、括号应该用{}
修改如下:
int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};

具体到其它问题,请LZ自行查阅处理,你的算法逻辑好麻烦,看的不是很懂

‘肆’ 给定年月日 怎样用C语言编程计算2个日期之间的时间天数

1970 年以后的时间,可以用 time.h 里的函数计算。时间精度为秒。按题目要求,输出时间单位用天。程序如下:
#include <stdio.h>
#include <time.h>
time_t YMD_hhmmss_2_s70(int Y, int M, int D, int hh, int mm, int ss){
struct tm *target_tm;
time_t tt;
time (&tt);
target_tm=localtime(&tt);
target_tm->tm_year = Y - 1900;
target_tm->tm_mon= M - 1;
target_tm->tm_mday = D;
target_tm->tm_hour = hh; // hour
target_tm->tm_min = mm;
target_tm->tm_sec = ss;
tt = mktime(target_tm); // from tm to time_t (s)
return tt;
}
int main()
{
int y1,m1,d1,y2,m2,d2;
time_t t1,t2;
int dt;
printf("input y1 m1 d1: ");
scanf("%d %d %d",&y1,&m1,&d1);
printf("\ninput y2 m2 d2: ");
scanf("%d %d %d",&y2,&m2,&d2);
t1 = YMD_hhmmss_2_s70(y1,m1,d1,0,0,0);
t2 = YMD_hhmmss_2_s70(y2,m2,d2,0,0,0);
dt = (t2-t1)/(24*3600);
printf("\ndt=%d\n",dt);
return 0;
}
这里未包含日期的合法性判断。
1970 年以前 要另写程序。某年的日子是当年的第几天可用下面函数得出:
int YMD_2_JD(int Y, int M, int D){
const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int JD,i;
JD=D;
for (i=0;i<M;i++) JD+=MonthDay[i];
if (((Y%4==0)&&(Y%100!=0)||(Y%400==0)) && (M>2)) JD++;
return JD;
}
整年的天数,涉及闰年的判断:
某年是否闰年,用 (Y%4==0)&&(Y%100!=0)||(Y%400==0) 判断。闰年366天,平年365天。 有了这些,写程序不难。
未考虑公元前的年月日计算。

‘伍’ 急求!C语言计算天数

#include<stdio.h>
int main()
{
int yyyy,mm,dd,a,b;
scanf("%d/%d/%d",&yyyy,&mm,&dd);
a=31*(mm>1)+28*(mm>2)+31*(mm>3)+30*(mm>4)+31*(mm>5)+30*(mm>6)+31*(mm>7)+31*(mm>8)+30*(mm>9)+31*(mm>10)+30*(mm>11)+dd;
b=((yyyy%4==0)*(yyyy%100!=0)+(yyyy%400==0))*(mm>2);
printf("%d\n",a+b);
return 0;
}

‘陆’ C语言关于输出天数

思路应可以这样:
1。先求出当前的年月日,并求出是平年还是闰年。
2.输入一年月日后,判别该年是平年还是闰年。
3.如果输入的年月日在当前的范围内,则就可以求天数了。(知道闰平的年分就可知月的天数,公历的闰年平年不是农历的闰平年)
4。如果输入的不在当前的年月是的天数内,相减就知有多少年。再分别求相这些年闰年的和与平年的和再加上相减的当前时间,就可得出所要的结果。

当前的年月日时分秒
#include <time.h>
get_time()
{
struct tm *Tm;
time_t t;

time(&t);
Tm = localtime(&t);

printf("%d-%d-%d %d:%d:%d\n",Tm->tm_year+1900,Tm->tm_mon,Tm->tm_mday,Tm->tm_hour,Tm->tm_min,Tm- >tm_sec);
return 0;
}
main()
{ }

‘柒’ c语言求一年的天数

#include<stdio.h>
void main()
{
int sum_day(int,int,int);
int a,b,c;
printf("输入年月日:");
scanf("%d%d%d",&a,&b,&c);
c=sum_day(a,b,c);
printf("天数是:%d\n",c);
}
int sum_day(int a,int b,int c)
{
int i,h[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(a%4==0&&a%100!=0||a%400==0) h[2]=29;
for(i=1;i<b;i++) c=h[i]+c;
return(c);
}

‘捌’ 用c语言编写计算两个日期之间的天数

#include <time.h>
#include <stdio.h>
void main()
{
tm t1={0},t2={0};
t1.tm_year = 1999-1900;
t1.tm_mon = 2-1;
t1.tm_mday = 3;
t2.tm_year = 2015-1900;
t2.tm_mon = 5-1;
t2.tm_mday = 4;
time_t a1 = mktime(&t1);
time_t a2 = mktime(&t2);
printf("相差%d天", (a2-a1)/86400);
}
ps:看不懂了再追问

‘玖’ C语言怎样计算天数

【程序1】:
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum);}