判断某一天是一年的第几天

1.键盘录入年月日,并判断是否准确,年大于0,月大于0 小于=12  ,日大于0 小于等于31

2.判断是不是瑞年,如果是瑞年判断2月是不是小于等于29,还有其他小月是否小于等于30  ;如果不是瑞年判断2月是不是小于等于28.否则提示输入错误

3.判断瑞年和小月的日期,累加求和即可

package com.test;

import java.util.Scanner;

public class Days {
public static void main(String[] args) {
for (;true;) {
boolean b =false;
int sum=0;int days=0;
Scanner sc = new Scanner(System.in);
System.out.println("請輸入年份");
int year=sc.nextInt();
if (year<=0) {
System.out.println("您输入的年份有误");
break;
}
System.out.println("请输入月份");
int month=sc.nextInt();
if (month>12||month<0) {
System.out.println("您输入的月份有误");
break;
}
System.out.println("请输入日期");
int day = sc.nextInt();
if (day>31||day<0) {
System.out.println("您输入的日期有误");
break;
}
//判断是不是瑞年
if ((year%4==0&&year%100!=0)||year%400==0) {
b=true;
}
if ((b&&month==2&&day>29)||((month==4||month==6||month==9||month==11)&&day>30)) {
System.out.println("日期错误");
break;
}else if (month==2&&day>28) {
System.out.println("日期错误");
break;
}
//判断闰年和小月的日期
for (int i = 1; i < month; i++) {//计算天数
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
if (b) {
days=29;
}else {
days=28;
}
break;
default:
break;
}
sum+=days;
}
if (b) {
System.out.println("这天是地"+(sum+day)+"天");
}else {
System.out.println("这天是地"+(sum+day)+"天");

}


}
}
}

转载于:https://www.cnblogs.com/hikoukay/p/7140969.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值