c语言用函数判断输入日期 c语言输入日期判断第几天

c语言:从键盘上输入一个日期,判断输入的日期是否正确

定义一个12元素的int型数组存放1月份至12月份每个月的天数;

创新互联主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、营销网站、网站程序开发、HTML5响应式重庆网站建设公司手机网站开发、微商城、网站托管及成都网站维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为广告设计行业客户提供了网站设计服务。

根据输入的年份判断是否为闰年,对上述数组中2月份的天数进行调整;

判断年份大于0、月份大于0小于13、日期大于0小于等于月份对应的天数为正确输入,否则为错误输入。

代码如下:

#include "stdio.h"

int main(int argc,char *argv[]){

int y,m,d,md[12]={31,28,31,30,31,30,31,31,30,31,30,31};//md是每月天数数组

printf("Please enter the year, month, day(separated by ' ')...\n");

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

md[1] = y%4==0  y%100 || y%400==0 ? 29 : 28;//闰年调整

if(y0  m0  m13  d0  d=md[m-1])//判断输入是否正确

printf("Your input is correct!\n");//正确输出

else

printf("Error...\n");//错误输出

return 0;

}

运行样例如下:

c语言判断日期

首先这个函数的输入是什么?

(年,月,日)

当不考虑闰年时,只须(月,日)

然后先考查月的取值范围(1~12)的整数

此时可以进行第一步判断

接下来,你要作的很简单

比如你可以用个switch来作这些事情

比如我来作:

switch(月)

case 1,3,5,7,8,10,12:

return (日 0 日 = 31) ?true:false; break;

case 4,6,9,11:

return (日 0 日 = 30) ?true:false; break;

case 2:

return (日 0 日 = 28) ?true:false; break;

defalts:

...............

另外若加上闰年的情况也不会很复杂,只是须要以年来判断是不是闰年,然后把那个28改成一个返回函数即可

用C语言函数输入某年某月某日,判断这一天是这一年的第几天?

#include stdio.h

#include stdlib.h

static int daytable[2][13] = {

{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},

{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}

};

/* Get the days from year month day */

void get_day ( int year, int *dayofyear, int month, int day )

{

int i, leap;

leap = (( year % 4 == 0 ) ( year % 100 != 0 ) || ( year % 400 == 0 ));

*dayofyear = 0;

for (i=1;i month;i++) {

*dayofyear = *dayofyear + daytable[leap][i];

}

*dayofyear = *dayofyear + day;

}

void main()

{

int year,month,day;

int days;

printf("Enter the year month day (for example: 2008 3 1)\n");

scanf("%d %d %d",year,month,day);

(void) get_day ( year, days, month, day );

printf("the days=%d\n",days);

}

分享题目:c语言用函数判断输入日期 c语言输入日期判断第几天
URL标题:https://www.cdcxhl.com/article20/hjgeco.html

成都网站建设公司_创新互联,为您提供外贸网站建设定制开发面包屑导航做网站微信小程序网站排名

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设