當前位置:首頁 » 編程語言 » 判斷日期合法的c語言

判斷日期合法的c語言

發布時間: 2022-03-31 08:21:55

『壹』 c語言中怎樣判斷輸入的日期是否合法要求用結構體並且能判斷例如2000-3-21中的每一部分是否合法(包括-)

struct Date
{
int year;
int month;
int day;
char ch;
};

void main()
{
Date date;
printf("please input date\n");
scanf("%d%c%d%c%d",&date.year,&date.ch,&date.month, &date.ch,&date.day);
if(ch != '-' || month > 12 || month < 1 ||day < 0 || day > n) n的值根據年月判斷
{
printf("error\n");
}

再給你一個判斷閏年的程序,自己試著組合下
#include<stdio.h>

void main()
{
int year;
printf("please input year :\n");
scanf("%d",&year);
if(year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
{
printf("yes!\n");
}
else
printf("no!");
}

『貳』 C語言:判斷輸入的一個日期的正確性

用SWITH對月份進行選擇 然後每個月份下都用IF做個判斷 然後輸出 最後再對2單獨進行判斷 判斷閏年的演算法是year%400==0||(year%4==0&&year%100!=0)

『叄』 編寫程序:輸入一個日期(年、月、日),判斷日期是否合法。怎麼寫求代碼

#include "stdio.h"
void printf(int a)
{
if(a==1)
printf("日期合法\n");
else
printf("日期非法\n");
}

void main()
{
void printf(int a);
int x,y,z,i;
scanf("%d,%d,%d\n",&x,&y,&z);
if(x%400==0||(x%4==0&&x%100!=0))
{
if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)
i=1;
else if(y==2)
i=2;
else if(y==4||y==6||y==9||y==11)
i=3;
else
i=4;
switch(i)
{
case 1:
if(z>=32)
printf(0);
else
printf(1);break;
case 2:
if(z>=30)
printf(0);
else
printf(1);break;
case 3:
if(z>=31)
printf(0);
else
printf(1);break;
case 4:printf(0);break;
default: printf(0);break;
}
}
else
{
if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)
i=1;
else if(y==2)
i=2;
else if(y==4||y==6||y==9||y==11)
i=3;
else
i=4;
switch(1)
{
case 1:
if(z>=32)
printf(0);
else
printf(1);break;
case 2:
if(z>=29)
printf(0);
else
printf(1);break;
case 3:
if(z>=31)
printf(0);
else
printf(1);break;
case 4:
printf(0);
default: printf(0);break;
}
}
}
幫你編好了,直接考到VC++裡面運行即可
運行後輸入3個整數,分別代表年月日,空格空開,enter結束

『肆』 c語言有什麼簡單辦法判斷一個字元串是否是合法日期

推薦使用正則表達式,對於驗證日期、手機號或郵箱的合法性很有用!

『伍』 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"
int main()
{
int year,month,day;
int sign=0,dayvalid;
printf("請輸入年月日:\n");
scanf("%d,%d,%d",&year,&month,&day);
if ((year%4==0&&year%100!=0)||year%400==0)
{
sign =1;
}
if (month>=1&&month<=12)
{
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
dayvalid = 31;
break;
case 4:
case 6:
case 9:
case 11:
dayvalid = 30;
break;
case 2:
if (sign ==1)
dayvalid = 29;
else
dayvalid = 28;
break;
default:
break;
}
if (!(day >0&&day <=dayvalid))
{
printf("日期格式錯誤\n");
return 2;
}
}
else
{
printf("月份格式錯誤:\n");
return 1;
}

printf("日期格式正確\n");
return 0;
}

『柒』 c語言 日期合法性

你這樣寫過於把編程復雜化了,其實這個簡單點就是定義兩個數組(當然,一個也可以):int arr1[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; /* 平年調用這個數組 */int arr2[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; /* 閏年調用這個數組 */判斷某年year是否為閏年的條件:(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)接下來,自己編程實現。給你提示,就這么多了。

『捌』 求改c語言程序,判斷日期是否合法並計算星期,大部分日期都對,但肯定有日期不對,麻煩高人指點

恰好我的一個項目上使用RTC,要根據年月日計算星期,在調用這個函數之前,已經對年月日做了限定,判斷輸入參數是否合法的代碼比較簡單,就不貼了.
/**
* 簡介:已知年月日計算星期
*
* 描述: 基姆拉爾森計算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
* @param y:年,比如2013年
* @param m:月,該數大於等於3,一月份該數為13,二月份該數為14
* @param d:日
* @return返回星期,=0:星期一 ;=6:星期天
*/
static uint8_t GetWeekDay(uint16_t y,uint8_t m,uint8_t d)
{
uint8_t tem8;
if((m==1)||(m==2))
{
m+=12;
y=y-1;
}
tem8=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
return(tem8+1);
}

『玖』 c語言判斷日期合法性

手邊沒有IDE,查錯有點費事,寫了一個

#include<stdio.h>
voidyes();
voidno();
intmain(void)
{
intyear,month,day;
printf("PleaseInputDataLike1992-04-03: ");
scanf("%d-%d-%d",&year,&month,&day);
if(year<0||year>3000||day>31||day<0||month>12||month<0)
{
printf("PleaseInputRightNumber! ");
return-1;
}
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if(day>0&&day<=31)
{
yes();
}
else
{
no();
}
}
elseif(month==2)
{
if((year%4==0&&year%100!=0)||year%400==0&&year%100==0)
{
yes();
}
else
{
no();
}
}
else
{
if(day>0&&day<31)
{
yes();
}
else
{
no();
}
}
return0;
}
voidyes()
{
printf("YES ");
}
voidno()
{
printf("NO ");
}

『拾』 C語言中先輸入一個日期然後判斷是否合法若不合法則繼續輸入至合法的程序(分年月日輸入)

#include<stdio.h>
int main()
{int y,m,d,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
do{printf("Please enter a date(yyyy m d):");
scanf("%d%d%d",&y,&m,&d);
}while(y<1||m<1||m>12||d<1||d>a[m]+(m==2)&(y%4==0&&y%100>0||y%400==0));
printf("%d-%d-%d is a valid date!\n",y,m,d);
return 0;
}

熱點內容
幼兒園源碼php 發布:2025-01-17 02:41:45 瀏覽:401
win引導Linux 發布:2025-01-17 02:36:49 瀏覽:263
ftp是傳輸類協議嗎 發布:2025-01-17 02:36:47 瀏覽:311
查看電視配置下載什麼軟體 發布:2025-01-17 02:36:41 瀏覽:159
寶馬x330i比28i多哪些配置 發布:2025-01-17 02:35:59 瀏覽:573
伺服器運維安全雲幫手 發布:2025-01-17 02:35:48 瀏覽:72
c應用編程 發布:2025-01-17 02:35:16 瀏覽:941
ios清除app緩存數據免費 發布:2025-01-17 02:34:33 瀏覽:375
微信企業號上傳文件 發布:2025-01-17 02:10:28 瀏覽:64
孩子幾歲可以學習編程 發布:2025-01-17 02:09:55 瀏覽:602