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+"天,"+"该年不是闰年。");}}                 }
}

运行结果:

年份不合法

月份不合法

日期不合法

闰年

不是闰年

从键盘中输入年、月、日,判断这一天为当年的第几天(考虑闰年和非法输入的情况)相关推荐

  1. 输入年和月,判断该月有多少天

    内容:输入年和月,判断该月有几天 目的:更好地理解switch语句 程序代码: /* * 程序的版权和版本声明部分: * Copyright (c) 2013, 烟台大学计算机学院 * All rig ...

  2. 输入一个 年 月 日 判断这一天是一年中的第几天 C++实现

    当用户输入年月日时 我们需要判断 1.是否为闰年 闰年的概念是 一个年份能被4整除且不能被100整除 或者是 年份能被400整除 大概像下边写的这样 if ((year % 4 == 0) & ...

  3. python星座判断_python根据月日判断星座

    用python设计程序输生日判断星座,及星座简笔画. 用Python做输入生日,判定星座及性格特点,星座符很简单的其实 input一个用户输入变量 判定input是什么星座,也是if判定条件, 最后p ...

  4. 从键盘分别输入年、月、日判断这一天是当年的第几天

    一.如何从键盘获取不同类型的变量:需要使用Scanner类 具体实现步骤 1.导包:import java.util.Scanner; 2.Scanner的实体化:Scannner scan = ne ...

  5. C语言根据年-月-日-判断星期几

    利用基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y表示年数. 注意:在公式中有个与其他公式不 ...

  6. 从键盘输入一个正整数,判断它是否为3和5的倍数,如果是,则输入yes,否则输出no。

    #include<stdio.h> int main() {     int a;     printf("请输入一个正整数\n");     scanf(" ...

  7. 输入一个日期,****年**月**日,如何判断是否为工作日?

    今天让写一个程序:输入日期,计算是否为工作日.有以下几个思路: 首先是第一种计算原理: 把你想要知道的日期号,加上该月份代号,再除以7,能整除的就是星期日:不能整除的,余数是几,那天就是星期几.如果日 ...

  8. 用python编程输入三角形的三条边判断是否构成三角形_vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题,...

    题目: vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题, Dim A=Val(InputBox("请输入a") ) B=Val(InputBox("请 ...

  9. 有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王 猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值

    有一个数列:白眉鹰王.金毛狮王.紫衫龙王.青翼蝠王 猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称[顺序查找] 要求: 如果找到了,就提示找到,并给出下标值 如果有多个查找结果,都找出来 ...

最新文章

  1. MySQL 主主报错: Fatal error: The slave I/O thread stops because master and slave have
  2. Elasticsearch之集群脑裂
  3. 【洛谷 P2051】 [AHOI2009]中国象棋(DP)
  4. OSI模型 TCP/IP模型 数据包结构
  5. 来,Consul 服务发现入个门(一看就会的那种)
  6. C语言实例:3个数从小到大排序
  7. IDEA——Maven的配置与使用
  8. java反显是什么_卡西欧反显是什么意思
  9. pythonqt5plaintextedit某一行的内容_如何能够做到持续输出内容?
  10. 拉格朗日松弛(二)——实例及代码
  11. 交通灯控制系统(30-5-20-5)【数电课设】
  12. 如何进阶为数据科学家
  13. 华为机试—字符串首字母转换成大写
  14. Arduino+nRF24L01接收端(二)
  15. 小黄衫获得感想及经验总结
  16. 对于微信支付宝支付的总结
  17. ioca0中断 pic单片机_PIC单片机
  18. 金仓数据库 KingbaseES SQL 语言参考手册 (13. SQL语句:ALTER SYNONYM 到 COMMENT)
  19. 什么牌子的千兆网卡好用_不挑次的只挑好的 台式机千兆网卡应该买哪些?
  20. 黑客无孔不入:硬盘指示灯和耳机也成漏洞

热门文章

  1. 成为有钱人的终极秘诀:做到这7步,你也可以成为富人!
  2. 飞蛾云小票打印API,以及小票模板函数
  3. 远程计算机guest密码更改了,怎么给guest设置密码
  4. POJ3618 绝对值排序
  5. js使用a标签下载,接口获取二进制文件
  6. 微信小程序顶部导航栏点击选项产生颜色变化和底部下划线显示
  7. 蚂蚁变大象:浅谈常规网站是如何从小变大的(二)
  8. 2021考研经历、心得、分享
  9. 文件上传时,file参数不存在
  10. 【Python游戏】可以实现双人对战游戏,类似拳皇可以选英雄的 绝对好玩 | 附带源码