无Bug,计算输入的日期是今年的第几天
源代码
package com.newer.oop;
import java.util.InputMismatchException;
import java.util.Scanner;
/**
* @author 韩楚齐
* @date 2018/7/28
* @see 判断输入的日期是这一年的第几天
*/
public class JudgementDays {
private static Scanner sc;
static boolean dayPanDuan;
static int year;
static int month;
static int daySum;
static int dayNum;
public static void PanDuanday(int year, int month, int day) {
switch (month) {
case 1:
if (day >= 1 && day <= 31) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 2:
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
if (day >= 1 && day <= 29) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
} else {
if (day >= 1 && day <= 28) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
}
case 3:
if (day >= 1 && day <= 31) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 4:
if (day >= 1 && day <= 30) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 5:
if (day >= 1 && day <= 31) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 6:
if (day >= 1 && day <= 30) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 7:
if (day >= 1 && day <= 31) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 8:
if (day >= 1 && day <= 31) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 9:
if (day >= 1 && day <= 30) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 10:
if (day >= 1 && day <= 31) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 11:
if (day >= 1 && day <= 30) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
case 12:
if (day >= 1 && day <= 31) {
dayPanDuan = true;
break;
} else {
dayPanDuan = false;
break;
}
}
}
public static int AddDay() {
for (int monthNum = month; monthNum > 0; monthNum--) {
switch (month) {
case 1:
dayNum = 31;
break;
case 2:
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
dayNum = 29;
break;
} else {
dayNum = 28;
break;
}
case 3:
dayNum = 31;
break;
case 4:
dayNum = 30;
break;
case 5:
dayNum = 31;
break;
case 6:
dayNum = 30;
break;
case 7:
dayNum = 31;
break;
case 8:
dayNum = 31;
break;
case 9:
dayNum = 30;
break;
case 10:
dayNum = 31;
break;
case 11:
dayNum = 30;
break;
case 12:
dayNum = 31;
break;
}
daySum += dayNum;
}
return daySum;
}
public static void main(String[] args) {
try {
sc = new Scanner(System.in);
System.out.print("请输入年:");
year = sc.nextInt();
System.out.print("请输入月:");
month = sc.nextInt();
if (month >= 1 && month <= 12) {
System.out.print("请输入日:");
int day = sc.nextInt();
PanDuanday(year, month, day);
if (dayPanDuan == true) {
System.out.println("日期"+year + "/" + month + "/" + day + "是" + year + "年的第" + AddDay() + "天");
} else {
daySum = AddDay();
System.out.println("日期不能大于" + dayNum+" ,请重新输入!");
}
} else {
System.out.println("输入月份有误,程序退出。");
}
} catch(InputMismatchException e) {
System.out.println("输入有误,程序退出。");
} catch(Exception e) {
System.out.println("其他错误。");
e.printStackTrace();
} finally {
System.exit(0);
}
}
}
代码仅供参考,谢谢
2018/8/6