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

 我来答
yjz081101
推荐于2017-11-25 · TA获得超过509个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:137万
展开全部
#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结束
百度网友e4b7864
2018-10-24
知道答主
回答量:1
采纳率:0%
帮助的人:812
展开全部
//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("合法")
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f0210b7
2019-11-16
知道答主
回答量:1
采纳率:0%
帮助的人:678
展开全部
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e3df199
2012-03-23
知道答主
回答量:3
采纳率:0%
帮助的人:3.1万
展开全部
你用的是什么数据库啊?
更多追问追答
追问
就用c语言变一下程序
追答
首先我得知道你要用什么数据库啊?
DB2,ORACLE,sql server都不一样的啊?
要不你把源程序我看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式