判断是否是闰年 - Java练习001
用Java语言来判断某一年是否为闰年(leap year)
满足闰年的条件:
1)非整百年份可被4整除,
2)可被400整除,
3)被100整除的不是闰年
package com.benjamin.chapter01;
import java.util.Scanner;
public class Demo001 {
public static void main(String[] agrs){
isLeapYear();
daysCount();
}
//判断某一年是否为闰年leap year
//满足闰年的条件:非整百年份可被4整除,可被400整除,被100整除的不是闰年
public static void isLeapYear(){
//Read year from console
Scanner scanner = new Scanner(System.in);
System.out.print("Please Enter a year: ");
int year = scanner.nextInt();
System.out.println();
//Check if it is leap year
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.printf("%d is leap year",year);
}else{
System.out.printf("%d is not leap year",year);
}
}
/*
扩展练习:判定指定日期间经过的天数
请判断从2000年1月1日到2019年5月1日一共经历了多少天?
*/
//思路:正常年份是365天,闰年是366天,因为平年有28天,闰年有29天
//先判断有几个闰年几个平年
public static void daysCount(){
int Jan = 31;
int Feb = 28;
int Mar = 31;
int Apr = 30;
int commonYearDays = 365;
int leapYearDays = 366;
int totalDays = 0;
//first calculate days from 2000 to 2018
for (int year = 2000; year < 2019; year++) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
totalDays += leapYearDays;
}else {
totalDays += commonYearDays;
}
}
//calculate days from 2019.1.1 to 2019.5.1
int daysFromJanToMay1st= totalDays+Jan+Feb+Mar+Apr+1;
System.out.println(daysFromJanToMay1st+" days");
}
}
国内最好的个人免费自学Java平台
Scanner用法链接: http://how2j.cn/p/2752