闰年:1、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1900年不是闰年)2、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)方法一
public class LeapYear {public static void main(String[] args) {//输入年月日,判断这一天是该年的第几天,距离该年结束还有多少天Scanner sc = new Scanner(System.in);System.out.println("请输入年份:");int year = sc.nextInt();System.out.println("请输入月份:");int month = sc.nextInt();System.out.println("请输入日期:");int day = sc.nextInt();//存放二月份的天数int two = 0;if(month > 2){if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){//闰年two = 29;//闰年二月份是29天}else {two = 28;//平年二月份是28天}}int sum = 0;//存放累加的整月的天数//循环累加除2月以外的整月的天数for (int i=1; i<month; i++){switch (i) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:sum = sum + 31;break;case 4:case 6:case 9:case 11:sum = sum + 30;break;}}//累加所有的天数int total = sum + two + day;System.out.println(year + "年" + month + "月" + day + "日是这一年的第" + total + "天" );int ends = 0;if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){//闰年ends = 366 - total;}else {ends = 365 - total;}System.out.println("距离这一年结束还有" + ends + "天");}}

方法二,当月天数另一种累加方式

public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入年份: ");int year = sc.nextInt();System.out.println("请输入月份: ");int month = sc.nextInt();System.out.println("请输入日期: ");int day = sc.nextInt();// 总天数int total = 365;// 声明一个累加器int sum = 0;// 若输入的月份大于二月份int two = 28;// 先默认28if (month > 2) {if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {two = 29;total = 366;}}switch (month - 1) {case 11:sum += 30;case 10:sum += 31;case 9:sum += 30;case 8:sum += 31;case 7:sum += 31;case 6:sum += 30;case 5:sum += 31;case 4:sum += 30;case 3:sum += 31;case 2:sum += two;case 1:sum += 31;}sum += day;System.out.println("这是今年的第 " + sum + " 天,距离今年结束还有 " + (total - sum) + " 天");}

方法三,比较麻烦的

import java.util.Scanner;
public class LeapYear2 {public static void main(String[] args) {// TODO Auto-generated method stub//        2.键盘输入一个年份,判断是平年还是闰年
//      闰年:能被4整除但不能被100整除或者能被400整除
//3.输入年月日,判断这一天是该年的第几天,距离该年结束还有多少天System.out.println("请输入年:");Scanner sc = new Scanner(System.in);int year = sc.nextInt();System.out.println("请输入月:");int month = sc.nextInt();System.out.println("请输入日:");int day = sc.nextInt();if (year % 400 ==0||(year%4 == 0 && year%100 != 0))//闰年{int month1= yue(month);int begin = month1+day;int end=366-begin;    System.out.println(year + "年" + month + "月" + day + "日是这一年的第" +begin+ "天" );     System.out.println("距离这一年结束还有" +end+ "天");}else {int month2= yue1(month);int begin = month2+day;int end=365-begin;            System.out.println(year + "年" + month + "月" + day + "日是这一年的第" +begin+"天" );  System.out.println("距离这一年结束还有" +end+"天");}}public  static int yue(int a)//闰年 a月之前所有月份天数{switch(a){case 1:a=0;break; case 2:a=31;break; case 3:a=60;break; case 4:a=91;break; case 5:a=121;break; case 6:a=152;break; case 7:a=182;break; case 8:a=213;break; case 9:a=244;break;case 10:a=274;break; case 11:a=305;break; case 12:a=335;break; } return a;}public  static int yue1(int a)//Pingnian{switch(a){case 1:a=0;break; case 2:a=31;break; case 3:a=59;break; case 4:a=90;break; case 5:a=120;break; case 6:a=151;break; case 7:a=181;break; case 8:a=212;break; case 9:a=243;break;case 10:a=273;break; case 11:a=304;break; case 12:a=334;break;}   return a;}
}

JAVA学习笔记_LeapYear问题相关推荐

  1. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

  2. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  3. 准备写java学习笔记

    准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267

  4. Java学习笔记--StringTokenizer的使用

    2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...

  5. java学习笔记12--异常处理

    java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...

  6. Java学习笔记(十)--控制台输入输出

    输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...

  7. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

  8. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  9. java学习笔记14--多线程编程基础1

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...

最新文章

  1. python中for循环缩进_Python减少循环层次和缩进的技巧分析
  2. Java程序员面试如何超常发挥?
  3. 论文笔记:MobileFaceNet
  4. VC2010 [转]解决char *无法转换为LPCWSTR问题
  5. Qt界面开发(各种控件以及图表)
  6. 【单调栈】向右看齐(luogu 2947)
  7. 【Swift】iOS裁剪或者压缩后出现的白边问题
  8. Spark SQL整合Hive
  9. guid主分区表损坏_固态硬盘用mbr还是guid
  10. iframe design=on 时,oncontextmeun不能触发之问题!
  11. 开源框架_Index
  12. 自杀式未来,从垃圾快乐上瘾开始?
  13. 高通设备进入高通9008模式
  14. Nand2Tetris Project1
  15. 选购国外虚拟主机的一些心得体会
  16. php怎么设置段落之间的距离,css如何设置段落间距?margin 属性设置段落间距(代码实例)...
  17. 独立产品灵感周刊 DecoHack #013
  18. 计算机英语词汇大全pdf,计算机英语(编程词汇大全).pdf
  19. axf文件、hex文件、bin文件区别
  20. C语言实验——求一个3*3矩阵对角线元素之和 (sdut oj)

热门文章

  1. latex页码 页眉页脚
  2. 7zip压缩及排除目录或文件
  3. 五官定位哪家强-人脸识别特征点比对
  4. java怎么部署_怎么部署java项目(从搭建环境说起)
  5. linux NTP时间服务
  6. php中strpos(), stripos(),strrpos(), strripos()的区别
  7. 天地人大湖北版2004-2005学年度第二学期第一次版聚总结
  8. 运用常用指标进行白银走势预测
  9. Camera Tuning职业介绍
  10. Greenplum集群问题修复小结