首页 > 编程语言 >用C语言编写程序,用户输入一个日期(格式:年 月 日),判断日期是否合法性

用C语言编写程序,用户输入一个日期(格式:年 月 日),判断日期是否合法性

时间:2024-06-21 12:28:33浏览次数:22  
标签:case 编写程序 C语言 日期 && 400 整除 day

#要求:”用户输入一个日期(格式:年 月 日),判断日期是否合法。“是”则输出“合法日期”,“否”则输出“非法日期”

#涉及到Switch语句、if else语句的使用。bool类型,即为布尔型,变量定义。

条件:

1.如果年份能被400整除,那么是闰年;

2.如果年份能被100整除但不能被400整除,那么是平年;

3.如果年份能被4整除但不能被100整除,那么是闰年;

4.其他的情况都是平年。

注:平年:2月有28天;闰年:2月有29天

 以下是参考代码:

#include <stdio.h>
#include <stdbool.h> 

bool isLeapYear(int year)
{
	//(能被400整除,是润年)或者(能被4整除但不能被100整除,是闰年) 
	return (year%400==0)||(year%4==0&&year%100!=0);
}

int main()
{
	int year,month,day;		//定义变量 
	printf("输入一个日期(格式:年 月 日):");
	scanf("%d%d%d",&year,&month,&day);	//读取输入的年月日 
	 switch(month)
	 {
	 	case 1: case 3: case 5: case 7: case 8: case 10: case 12:	//选择输入的1、3、5、7、8、10、12月份的条件下 
	 		if(day>=1&&day<=31)		//判断这个月份是否为1~31天内 
	 		{
	 			printf("合法日期\n");		//输出结果到屏幕上 
			}
			else
			{
				printf("非法日期\n");
			}
			break;		//跳出循环体之外 
		case 4: case 6: case 9: case 11:		//选择输入的4、6、9、11月份的条件下
		 	if(day>=1&&day<=30)		//判断这个月份是否为1~30天内 
		 	{
		 		printf("合法日期\n");		//输出结果到屏幕上 
			}
			else
			{
				printf("非法日期\n");
			}
			break;		//跳出循环体之外 
		case 2:								//选择输入2月份的条件下 
			if(isLeapYear(year))	//判断是否满足闰年的条件 
			{
				if(day>=1&&day<=29)		//判断天数是否为1~29天(闰年的二月份为29天) 
				{
					printf("合法日期\n");		//输出结果到屏幕上 
				}
				else
				{
					printf("非法日期\n");
				}
			}
			else
			{
				if(day>=1&&day<=28)		//判断天数是否为1~28天(闰年的二月份为28天)
				{
					printf("合法日期\n");		//输出结果到屏幕上 
				}
				else
				{
					printf("非法日期\n");
				}
			}
		 	break;		//跳出循环体之外 
		default:						//默认输入错误 
		 		printf("Error\n");
			break;		//跳出循环体之外 
	 }
	return 0;
 }

标签:case,编写程序,C语言,日期,&&,400,整除,day
From: https://blog.csdn.net/2301_80965364/article/details/139792708

相关文章

  • Excel日期函数
    Excel提供了丰富的日期和时间函数,可以满足各种日期相关的需求。以下是一些常用的Excel日期和时间函数:获取当天日期:TODAY()函数返回当前日期获取日期时间:NOW()函数返回当前日期和时间计算日期差:DATEDIF(start_date,end_date,unit)函数计算两个日期之间......
  • C语言中的strtok()函数
    strtok()函数是C标准库<string.h>头文件的一部分,用于将字符串分割成一个个标记(token)。语法#include<string.h>char*strtok(char*string,constchar*delimiter);string:要分割的输入字符串。delimiter:分隔符字符串。strtok()函数将根据分隔符字符将输入字符串......
  • C语言-静态通讯录(全功能)(详略版)
    目录前言:     基本功能:游戏主体: 定义结构体:初始化结构体:添加联系人: 显示通讯录:修改联系人信息:查找联系人:删除联系人:排序通讯录:清空联系人:前言:             大家好,今天写了一个通讯录系统,本程序也是对结构体的考察,我会尽......
  • 请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度
    /*请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数)函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。*/#include<stdio.h>char*fun(char*buff,char*str){intbuff_len=0,str_len=0;while(bu......
  • HMAC与Hash算法——C语言实现
    hash算法是HMac的Mac hmacsha256.h1/**2*@filehmacsha256.h3*@authoryourname([email protected])4*@brief5*@version0.16*@date2024-06-207*8*@copyrightCopyright(c)20249*10*/1112#ifndef_HMAC_SHA_256_H_13#......
  • 【C语言】自定义类型
    目录一、结构体:1、结构体的声明:2、结构体的自引用:3、结构体变量的定义和初始化:4、结构体内存对齐:5、结构体传参:6、位段:二、枚举类型:三、联合体:一、结构体:1、结构体的声明:首先要了解什么是结构:结构是一些值的集合,与数组不同的是结构的每一个成员变量可以使不同......
  • 探究C语言函数栈帧的创建和销毁
    引言在C语言程序中,每当一个函数被调用时,系统都会在栈上为该函数分配一块内存空间,这块内存空间就被称为栈帧。栈帧中包含了函数执行所需的所有信息,如局部变量、参数、返回地址等。栈帧的创建和销毁是函数调用的核心部分,它们确保了函数能够正确地执行和返回。本文将在VS2013环......
  • C语言基础入门 -1
    一.计算机中单位bit -比特位(最小单位);byte-字节kb-千字节mb-兆字节gb-千兆字节tb-太字节1字节=8比特位;其他单位之间换算为1024;二.数据类型与所占字节char//字符型   1字节short//短整型   2字节int  //整型   4字节long//长整型  ......
  • C语言----自定义类型:联合和枚举
     1.联合体联合体的特点像结构体一样,联合体也是一个或者多个成员构成的,这些成员可以是不同的类型联合体的关键字:union结构体的关键字:struct枚举的关键字:enum但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共......
  • 【C语言】初识C语言 - 数组
    一、一维数组的创建和初始化1.1一维数组的创建数组的定义:是一种线性数据结构,用于存储相同数据类型的元素的集合。数组中的元素在内存中是连续存储的,并且通过索引来访问。#include<stdio.h>intmain(){ intarr[1]={2}; //数组数据类型为:int //数组名为:arr //......