从键盘中输入年、月、日,判断这一天为当年的第几天(考虑闰年和非法输入的情况)
Java运用switch语句和if-else语句嵌套
思路:先输入年份、月份、日期,然后一个变量sumDays记录天数,再定义一个boolean变量leapYear,然后对年份进行判断并给leapYear赋值;最重要的是设置一个限定条件防止用户输入不合法的数据,包括防止年份不低于1979年,月份应在1~12月,日期考虑闰年情况,闰年2月份29天,非闰年28天,用switch语句通过累加法对天数进行计算,需要注意的是讨论当是闰年时2月份为29天,非闰年时2月份为28天。最后输出运算结果。
代码实现:
import java.util.Scanner;
public class MyDate
{public static void main(String[] args) {Scanner scanner = new Scanner(System.in);//输入年份、月份、日期System.out.print("请输入年份:");int year = scanner.nextInt();System.out.print("请输入月份:");int month = scanner.nextInt();System.out.print("请输入日期:");int day = scanner.nextInt();int sumDays = 0;boolean leapYear;//判断输入的年份是否为闰年if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){leapYear = true;}else{leapYear = false; }//计算输入的日期为该年份的第几天//时间从1979年1月1日开始计算if(year < 1979 || month < 1 || month > 12 || day<1 || day > 31){//判断输入的日期是否合法System.out.println("你输入的日期不合法!!!");}else if((leapYear == true && month == 2 && day>29)||(leapYear == false && month == 2 && day>28)){//判断输入的日期是否合法System.out.println("你输入的日期不合法!!!");}else{switch (month){case 12:sumDays = 30;case 11:sumDays += 31;case 10:sumDays += 30;case 9:sumDays += 31;case 8:sumDays += 31;case 7:sumDays += 30;case 6:sumDays += 31;case 5:sumDays += 30;case 4:sumDays += 31;case 3:if(leapYear){sumDays += 29;}else{sumDays += 28;}case 2:sumDays += 31;case 1:sumDays += day; }//输出运行结果if(leapYear){System.out.println(year+"年"+month+"月"+day+"日为"+year+"年的第"+sumDays+"天,"+"该年为闰年。");}else{System.out.println(year+"年"+month+"月"+day+"日为"+year+"年的第"+sumDays+"天,"+"该年不是闰年。");}} }
}
运行结果:
年份不合法
月份不合法
日期不合法
闰年
不是闰年
从键盘中输入年、月、日,判断这一天为当年的第几天(考虑闰年和非法输入的情况)相关推荐
- 输入年和月,判断该月有多少天
内容:输入年和月,判断该月有几天 目的:更好地理解switch语句 程序代码: /* * 程序的版权和版本声明部分: * Copyright (c) 2013, 烟台大学计算机学院 * All rig ...
- 输入一个 年 月 日 判断这一天是一年中的第几天 C++实现
当用户输入年月日时 我们需要判断 1.是否为闰年 闰年的概念是 一个年份能被4整除且不能被100整除 或者是 年份能被400整除 大概像下边写的这样 if ((year % 4 == 0) & ...
- python星座判断_python根据月日判断星座
用python设计程序输生日判断星座,及星座简笔画. 用Python做输入生日,判定星座及性格特点,星座符很简单的其实 input一个用户输入变量 判定input是什么星座,也是if判定条件, 最后p ...
- 从键盘分别输入年、月、日判断这一天是当年的第几天
一.如何从键盘获取不同类型的变量:需要使用Scanner类 具体实现步骤 1.导包:import java.util.Scanner; 2.Scanner的实体化:Scannner scan = ne ...
- C语言根据年-月-日-判断星期几
利用基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y表示年数. 注意:在公式中有个与其他公式不 ...
- 从键盘输入一个正整数,判断它是否为3和5的倍数,如果是,则输入yes,否则输出no。
#include<stdio.h> int main() { int a; printf("请输入一个正整数\n"); scanf(" ...
- 输入一个日期,****年**月**日,如何判断是否为工作日?
今天让写一个程序:输入日期,计算是否为工作日.有以下几个思路: 首先是第一种计算原理: 把你想要知道的日期号,加上该月份代号,再除以7,能整除的就是星期日:不能整除的,余数是几,那天就是星期几.如果日 ...
- 用python编程输入三角形的三条边判断是否构成三角形_vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题,...
题目: vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题, Dim A=Val(InputBox("请输入a") ) B=Val(InputBox("请 ...
- 有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王 猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值
有一个数列:白眉鹰王.金毛狮王.紫衫龙王.青翼蝠王 猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称[顺序查找] 要求: 如果找到了,就提示找到,并给出下标值 如果有多个查找结果,都找出来 ...
最新文章
- MySQL 主主报错: Fatal error: The slave I/O thread stops because master and slave have
- Elasticsearch之集群脑裂
- 【洛谷 P2051】 [AHOI2009]中国象棋(DP)
- OSI模型 TCP/IP模型 数据包结构
- 来,Consul 服务发现入个门(一看就会的那种)
- C语言实例:3个数从小到大排序
- IDEA——Maven的配置与使用
- java反显是什么_卡西欧反显是什么意思
- pythonqt5plaintextedit某一行的内容_如何能够做到持续输出内容?
- 拉格朗日松弛(二)——实例及代码
- 交通灯控制系统(30-5-20-5)【数电课设】
- 如何进阶为数据科学家
- 华为机试—字符串首字母转换成大写
- Arduino+nRF24L01接收端(二)
- 小黄衫获得感想及经验总结
- 对于微信支付宝支付的总结
- ioca0中断 pic单片机_PIC单片机
- 金仓数据库 KingbaseES SQL 语言参考手册 (13. SQL语句:ALTER SYNONYM 到 COMMENT)
- 什么牌子的千兆网卡好用_不挑次的只挑好的 台式机千兆网卡应该买哪些?
- 黑客无孔不入:硬盘指示灯和耳机也成漏洞