您的位置:

c语言编写days,c语言编写单片机

本文目录一览:

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;

}