编写程序:输入一个日期(年、月、日),判断日期是否合法。怎么写?求代码?

如题所述

#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结束
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-24
//3、定义函数,输入一个日期,判断该日期是否合法;(三个文本框代表年月日,合法要求年大于0,月1到12之间,日期1、3、5、7、8、10、12月1到31天,4、6、9、11月1到30天,2月闰年1到29天,平年1到28天即为合法)
function check(){
var y=document.getElementById('year').value;
var m=document.getElementById('month').value;
var d=document.getElementById('day').value;
if(y==" "){
alert("年不能为空");
return;
}
if(isNaN(y)==true){
alert("年必须为数字");
return;
}
if (parseInt(y)<0) {
alert("年不能小于0");
return;
}
//判断月不能为空必须为数字,1~12之间
if(m==""){
alert("月不能为空");
return;
}
if(isNaN(m)==true){
alert("月必须为数字");
return;
}
if(parseInt(m)<0||parseInt(m)>12){
alert("月必须在1~12之间");
return;
}
if(d==""){
alert("日不能为空");
return;
}
if(isNaN(d)==true){
alert("日必须为数字");
return;
}
if(parseInt(m)==4||parseInt(m)==6||parseInt(m)==9||parseInt(m)==11){
if(parseInt(d)>30||parseInt(d)<1){
alert("日只能在1~30日之间");
return;
}
}else if(parseInt(m)==2){
if(parseInt(y)%4==0&&parseInt(y)%100!=0||parseInt(y)%400==0){
if(parseInt(d)>29||parseInt(d)<1){
alert("日只能在1~29日之间");
return;
}
}else{
if(parseInt(d)>28||parseInt(d)<1){
alert("日只能在1~28日之间");
return;
}
}
}else{
if(parseInt(d)>31||parseInt(d)<1){
alert("日只能在1~31日之间");
return;
}
}
alert("合法")
}
第2个回答  2019-11-16
function check_date(y, m, d) {
if (isNaN(y) || isNaN(m) || isNaN(d)) {
return false;
}
if (parseInt(y) < 1900) {
return false;
}
if (parseInt(m) < 0 || parseInt(m) > 12) {
return false;
}
if (parseInt(m) === 4 || parseInt(m) === 6 || parseInt(m) === 9 || parseInt(m) === 11) {
if (parseInt(d) > 30 || parseInt(d) < 1) {
return false;
}
} else if (parseInt(m) === 2) {
if (parseInt(y) % 4 === 0 && parseInt(y) % 100 !== 0 || parseInt(y) % 400 === 0) {
if (parseInt(d) > 29 || parseInt(d) < 1) {
return false;
}
} else {
if (parseInt(d) > 28 || parseInt(d) < 1) {
return false;
}
}
} else {
if (parseInt(d) > 31 || parseInt(d) < 1) {
return false;
}
}
return true;
}
第3个回答  2012-03-23
你用的是什么数据库啊?追问

就用c语言变一下程序

追答

首先我得知道你要用什么数据库啊?
DB2,ORACLE,sql server都不一样的啊?
要不你把源程序我看看

追问

不用数据库的,就简单一个程序编出来就行,题目是编写程序:输入一个日期(年、月、日),判断这一日期是否合法。然后再用白盒覆盖方法设计测试用例并上机执行测试,找出程序缺陷。
------软件测试题

相似回答