本文目录一览:
C语言编写days函数 计算该日是该年的第几天怎么做?
#includestdio.h
int days(int y,int m,int d)
{int i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(y1||m1||d1||da[m]+(y%4==0y%1000||y%400==0))
{printf("%d-%d-%d不是一个有效的日期!\n",y,m,d);
return -1;
}
for(i=1;im;i++)
d+=a[i];
return d;
}
int main()
{int year,month,day,answer;
printf("请输入一个日期yyyy-mm-dd\n");
scanf("%d-%d-%d",year,month,day);
answer=days(year,month,day);
if(answer0)
printf("%d-%d-%d 是该年的第 %d 天.\n",year,month,day,answer);
getch();
return 0;
}
c语言编程日期计算
// _MONTH代表一年里各月份的天数
int _MONTH[]={{31},{28},{31},{30},{31},{30},{31},{31},{30},{31},{30},{31}};
// days第一参数代表月份,第二个参数代表天数
// 比如11月3日,可以这样调用days(11,3);
int days(int *m,int *day)
{
int i,md=0;
unsigned int d;
for(i=0;i(*m-1)(i11);i++)
md=md+_MONTH[i];
d=md+(*day);// 总天数累加
return (int)((d+365)-365); //总天数加365天再减365天相当于取余数的原理(你把365当成整体来对待你就会明白的),你可设想下,比如你输入的日期是12月31日那么总天数就肯定是365,而你若不加365天,直接减去365天,这样一来就不符合逻辑。这是一个逻辑性问题。你可以自己好好琢磨下。
}
C语言编程日期计算
#include stdio.h
#include windows.h
/* 以公元阳历来计算(非农历) */
int _MONTH[]={{31},{28},{31},{30},{31},{30},{31},{31},{30},{31},{30},{31}};
int days(int *m,int *day)
{
int i,md=0;
unsigned int d;
for(i=0;i(*m-1)(i11);i++)
md=md+_MONTH[i];
d=md+(*day);
return (int)((d+365)-365);
}
void main()
{
int month,day;
RESET:
month=day=1;
printf("月份:");
scanf("%d",month);
printf("日期:");
scanf("%d",day);
while((month1||month12)||(day1||day31))
{
printf("月份或日期有误,请重新输入!\n");
fflush(stdin);
Sleep(3000);
goto RESET;
}
printf("今天是今年的第%d天\n",days(month,day));
}
月份与日期是用户输入接受来的,如果你想一运行就显示当前日期是今年的第几天。你可以使用time.h头文件里的有关函数来获取。获取后你只需将将强制转换为int型即可带入实参。具体如何获取网上有很多成熟的例子。
这个例子的实现原理与日历实现的原理一样:
如日历的原理如下截图:
C语言编写days函数 计算该日是该年的第几天
#includestdio.h
int days(int y,int m,int d)
{int i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(y1||m1||d1||da[m]+(y%4==0y%1000||y%400==0))
{printf("%d-%d-%d不是一个有效的日期!\n",y,m,d);
return -1;
}
for(i=1;im;i++)
d+=a[i];
return d;
}
int main()
{int year,month,day,answer;
printf("请输入一个日期yyyy-mm-dd\n");
scanf("%d-%d-%d",year,month,day);
answer=days(year,month,day);
if(answer0)
printf("%d-%d-%d 是该年的第 %d 天.\n",year,month,day,answer);
getch();
return 0;
}