用c语言对用户输入的日期型数据进行有效性验证,yyyy~m~d代表年月日保证

用c语言对用户输入的日期型数据进行有效性验证,yyyy~m~d代表年月日保证,第1张

#include <stdio.h>

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

    int y,m,d,c[12]={31,28,31,30,31,30,31,31,30,31,30,31}

    printf("Input y, m & d...\n")

    while(1){

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

        c[1]=28+(y%4==0 && y%100 || y%400==0)

        if(m>0 && m<13 && d>0 && d<=c[m-1])

            break

        printf("Input error, redo: ")

    }

    printf("Your input is %d-%d-%d\n",y,m,d)

    return 0

}

#include<stdio.h>

bool isday(int day,int mouth,int year)

{

int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}

if((year%400==0)||(year%4==0&&year%100!=0)) a[1]++

if(day>a[mouth-1]||day<1)

return true

else

return false

}

void main()

{

int i,year,mouth,day

int sum,sign

int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}

do

{

sum=0sign=0

puts("请输入年、月、日:")

scanf("%d%d%d",&year,&mouth,&day)

if(((year%400==0)||(year%4==0&&year%100!=0))&&mouth>2)

{

sum=day+1//闰年,记得加1

}

else sum=day

for(i=0i<mouth-1i++)

sum+=a[i]

if(year<1||mouth<1||mouth>12||isday(day,mouth,year))

{

puts("输入错误,请重新输入:")

sign=1

}

}while(sign)

printf("为第%d天\n",sum)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12076992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存