校驗日期有效性,除了在代碼中內(nèi)置日歷數(shù)據(jù),還可以利用以下方法進(jìn)行判斷,而且代碼更簡潔。經(jīng)過測試,在本地虛擬機(jī)執(zhí)行100W次循環(huán)判斷,只需要4秒,執(zhí)行效率杠杠的。
struct tm ltm = {0};
char buf[] = "2011-02-31";
puts(buf);
strptime(buf, "%Y-%m-%d", <m);
mktime(<m);
strftime(buf, sizeof(buf), "%Y-%m-%d", <m);
puts(buf);
輸入和輸出的內(nèi)容如下:
2011-02-31
2011-03-03
通過字符串比較,如果不一致則表示不是有效日期。
我是咕咕雞,一個還在不停學(xué)習(xí)的全棧工程師。
熱愛生活,喜歡跑步,家庭是我不斷向前進(jìn)步的動力。