C語言中怎麼判斷輸入日期格式是否正確,要求輸入的格式為年 月 日,如

時間 2022-04-20 19:29:16

1樓:匿名使用者

如果test為你輸入的時間資訊用

test.indexof("-")

判斷是否是要求的格式

2樓:月光下的狼

1,判斷第5,8個是否為-

2,月份是否<13

3,號是否 滿足 13578十臘 < 32, 46911<31 如果是閏年2<30。如果不是閏年2<30

3樓:匿名使用者

char str[100];

memset(str,0,100);

strcpy(str,"1995-12-06")int year,month,day;

自己除錯下就好了

4樓:

#include

static int is_valid_date(int y, int m, int d)

;if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)

month[1] = 29;

return m > 0 && m <= 12 && d > 0 && d <= month[m - 1];

}int main(void)

c語言中 求解如何判斷輸入的年月日是否合法

5樓:匿名使用者

似乎沒有現成的函式可以用。

年月好檢查,在範圍內就成;日初查也是查範圍,範圍沒問題再細查。

細查一般這樣,你用年月和當月的1日生成乙個日期,加上你輸入的(日-1)(要消除定位在1號的差),然後取這個日期變數的日,如果和輸入日相等就沒問題,不等就是輸入日期不合法。

c語言中,如何驗證輸入日期的正確性!~

6樓:匿名使用者

主要驗證三個資訊:

a.驗證月數是否在1~12,m > 0 && m <= 12

b.驗證日數是否超過當月,d > 0 && d <= month[m - 1]

c.對平閏年的判斷,if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)month[1] = 29

例程:#include

static int is_valid_date(int y, int m, int d)

;if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)

month[1] = 29;

return  m > 0 && m <= 12 && d > 0 && d <= month[m - 1];

}int main(void)

7樓:可愛的壞男孩

#include

void main()

8樓:匿名使用者

很簡單吶

年份確定乙個範圍

月份乙個範圍

日份確定乙個範圍

9樓:受傲之心思

就這麼寫的,沒除錯,你自己調一下

#include

void

main()

else

if(date>28||date<1)

printf("error!");

break;

case

3:if(date>31||date<1)printf("error!");break;

case

4:if(date>30||date<1)printf("error!");break;

case

5:if(date>31||date<1)printf("error!");break;

case

6:if(date>30||date<1)printf("error!");break;

case

7:if(date>31||date<1)printf("error!");break;

case

8:if(date>31||date<1)printf("error!");break;

case

9:if(date>30||date<1)printf("error!");break;

case

10:if(date>31||date<1)printf("error!");break;

case

11:if(date>30||date<1)printf("error!");break;

case

12:if(date>31||date<1)printf("error!");break;}}

c語言:從鍵盤上輸入乙個日期,判斷輸入的日期是否正確

10樓:匿名使用者

int isleapyear(int iyear)

判斷閏年的條件

else

}int datecheck(int iyear,int imonth,int iday)

if (imonth==4||imonth==6||imonth==9||imonth==11)

}else if (imonth==2)

}else}}

return 1;

}核心**就是這些,另外你自己寫主函式,呼叫datecheck函式就可以了。

c語言中 求解如何判斷輸入的年月日是否合理

11樓:匿名使用者

**裡面的主要問題時:

if((month==1,3,5,7,8,10,12)這樣的判斷語句是有問題,應該使用||運算子的;

if和else語句沒有配合好,主要是你的**巢狀比較多,一定要注意**縮排,否則自己可能都沒有發現那個地方else沒有寫的。。

下面的**,是修改後,執行結果附在後面:

#include

#include

int main()

else if(((month==4)||(month==6)||(month==9||11))&&(day<0||day>30))

else if(month==2)

else}}

else

sum+=day;

>2))

else} }

system("pause");

return 0;

}執行結果為:

12樓:匿名使用者

#include

#include

void main( ) ;

int year, month, day, sum, leap, i;

printf("輸入年月日(例如:2013-4-5):");

if(year < 1 || month < 1 || month > 12) {

printf("不合理的年或月!\n");

return;

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

if((day < 1 || day > mon[month]) && ((month != 2) || ((month == 2) && (day > mon[month] + leap)))) {

printf("不合理的日期\n");

return;

for(sum = 0, i = 1; i < month; i++)

sum += mon[i];

sum += day + leap;

printf("%d-%d-%d是%d年的第%d天!", year, month, day, year, sum);

system("pause");

c語言中怎樣輸入和讀取方向鍵,C語言怎麼輸入方向鍵左?

那你先要熟悉鍵盤編碼和asc碼,然後跟值比較啊!在貪吃蛇中定義了intokey 函式 你也可以改成別的 整個函式體中的 就是獲取鍵盤 的方向鍵值,倒數第2 5行是獲取回車鍵值,用於起暫停作用。這裡用direction表示方向,程式中up down left right分別固定代表1 2 3 4這四個...

c語言中如何輸入雙引號,C語言 如何輸出 good ,是帶引號輸出

聽不清啊 c語言中用 表示乙個雙引號。char s he says,ok.最前和最後的雙引號是定界符,中間的兩處 表示雙引號 puts s 就可以輸出he says,ok.轉義字元 所有的ascii碼都可以用 加數字 一般是8進製數字 來表示。而c中定義了一些字母前加 來表示常見的那些不能顯示的as...

c語言用scanf輸入字串,C語言中用scanf函式輸入字元時,為什麼要在輸入控制符 c前面加空格?用scanf還有哪些要注意?

有了char a 10 那麼a就是這個陣列的第乙個元素的指標,a就是這個陣列的指標 因為一維陣列的第乙個元素的指標和這個陣列的指標是同乙個位址,區別是a 1指向a 1 而 a 1就指向a 10 了 這裡已越界了 但 a和a的 值 是相同的,只是型別不同。c呼叫函式時,實參的型別都會被強制為形參的型別...

c語言怎麼判斷輸入的是不是數字,c語言裡 輸入時 怎麼判斷是字元還是數字

你的意思是輸入的如果不是數字,就提示輸入不對,然後接著之前的重新輸入嗎?isnumeric函式是判斷是不是數字的 是數字返回true string.h裡面包含 isdigit 就是你要找的函式 int isnum,h do isnum scanf d h if isnum 1 while isnum...

c語言輸入年月日判斷該日期是當年的第幾天

include int run int year 判斷閏年 int jisuan int year,int month 計算當月之前度過的日子,x run year for i 1 i 注釋部分存在問題,測試結果 include int main sum sum day 2 sum printf 這...