java 第几天_判断这一天是这一年的第几天? 的三种方法! Java

程序分析: 以3月5日为例,应该先把前两个月的加起来,然后再加.上5天即本年的第

几天。

特殊情况:闰年且输入月份大于3时需考虑多加一天。

闰年的条件: year除以400能整除,或者year除以4能整除,但是不能是100的倍数 分为三个方法

//方法一:

static void getTotalDays(int year,int month,int day){

int total = 0;//总天数

for (int i = 1; i < month ; i++) {

switch(i){

case 1 : case 3: case 5: case 7: case 8: case 10: case 12: total +=31;break;

case 4 : case 6: case 9: case 11: total +=30;break;

default: if (i==2){

if (year%4==0&&year%100!=0||year%400==0){

total+=29;

}else{

total+=28;

};break;

}

}

}

total+=day;

System.out.println("这一天是这一年的第" + total);

}

//方法二:

static void TotalDays(int year,int month,int day) {

int total = 0;//总天数

for (int i = 1; i < month; i++) {

if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {

total += 31;

} else if (i == 4 || i == 6 || i == 9 || i == 11 ) {

total += 30;

} else {

if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

total += 29;

} else {

total += 28;

}

}

}

total += day;

System.out.println("这一天是这一年的第" + total);

}

//方法三:

public static void totalDays(int year, int month, int day) {

int totaldays = 0;

if (month <= 12 && day <= 31) { //判断年月日对不对

for (int i = 1; i < month; i++) {

switch (i) {

case 1:

totaldays += 31;

break;

case 3:

totaldays += 31;

break;

case 5:

totaldays += 31;

break;

case 7:

totaldays += 31;

break;

case 8:

totaldays += 31;

break;

case 10:

totaldays += 31;

break;

case 4:

totaldays += 30;

break;

case 6:

totaldays += 30;

break;

case 9:

totaldays += 30;

break;

case 11:

totaldays += 30;

break;

case 2:

totaldays += 28;

break;

}

}

if (month > 2) {

if (year % 4 == 0 && year % 400 != 0 || year % 400 == 0) {

System.out.println("这一天是这一年的第" + (totaldays + 1 + day) + "天");

} else {

System.out.println("这一天是这一年的第" + (totaldays + day) + "天");

}

} else {

System.out.println("这一天是这一年的第" + (totaldays + day) + "天");

}

}else {

System.out.println("输入错!请检查输入!");

}

}

本文地址:https://blog.csdn.net/weixin_48262880/article/details/107265333

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值