
正文
计算第几天java代码 java计算多少天
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
(JAVA)输入年月日,计算日期是今年的第几天?
import java.util.Scanner;
/**
* Created by xpf on 2018/6/22 :)
* GitHub:xinpengfei520
* Function:
*/
public class CalculateUtils {
/*平年二月28天*/
private static final int DAYS_28 = 28;
/*闰年二月29天*/
private static final int DAYS_29 = 29;
/*除了31天的月份其他均为30天*/
private static final int DAYS_30 = 30;
/*1、3、5、7、8、10、12月份31天*/
private static final int DAYS_31 = 31;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please input year:");
int year = input.nextInt();
System.out.println("Please input month:");
int month = input.nextInt();
System.out.println("Please input day:");
int day = input.nextInt();
int daysInYear = getDaysInYear(year, month, day);
System.out.println("daysInYear:" + daysInYear);
}
/**
* get days in this year
*
* @param year
* @param month
* @param day
* @return
*/
public static int getDaysInYear(int year, int month, int day) {
int totalDays = 0;
switch (month) {
// 12 月份加的是11月份的天数,依次类推
case 12:
totalDays += DAYS_30;
case 11:
totalDays += DAYS_31;
case 10:
totalDays += DAYS_30;
case 9:
totalDays += DAYS_31;
case 8:
totalDays += DAYS_31;
case 7:
totalDays += DAYS_30;
case 6:
totalDays += DAYS_31;
case 5:
totalDays += DAYS_30;
case 4:
totalDays += DAYS_31;
case 3:
// 判断是否是闰年
if (((year / 4 == 0) (year / 100 != 0)) || (year / 400 == 0)) {
totalDays += DAYS_29;
} else {
totalDays += DAYS_28;
}
case 2:
totalDays += DAYS_31;
case 1: // 如果是1月份就加上输入的天数
totalDays += day;
}
return totalDays;
}
}
【解题思路】
1、通过年份区分是闰年还是平年,平年 2 月 28 年,闰年 2 月 29 天。
2、1、3、5、7、8、10、12 月份为 31 天,其余月份为 30 天。
3、将每个月的天数相加即可,如果输入的是 12 月,则从 11 月往前累加到1月。
扩展资料
其他java计算日期的方式
package study01;
import java.util.Scanner;
public class TestDay {
/*
* 输入2017年的月和日:month=?,day=? 输出输入的日期是2017年的第几天,使用switch完成
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("month=");
int month = sc.nextInt();
System.out.print("day=");
int day = sc.nextInt();
int days = 0;
switch (month) {
case 12:
days += 30;
case 11:
days += 31;
case 10:
days += 30;
case 9:
days += 31;
case 8:
days += 31;
case 7:
days += 30;
case 6:
days += 31;
case 5:
days += 30;
case 4:
days += 31;
case 3:
days += 28;
case 2:
days += 31;
case 1:
days += day;
}
if(days365){
System.out.println("你输入的已经超过了365天了");
}else{
System.out.println("第" + days + "天");
}
}
}
输出的结果如下:
month=12
day=31
第365天
参考资料:百度百科-Scanner
参考资料:百度百科-java
相关问答
Q1: 用java来编写《计算某日期是该年度的第几天》的代码,请高手来帮我看一下。
郁闷 我帮你写个 日历程序吧 提供下思路 首先接收 用户输入年份和月份 我们就不计算太远的了 就从1900年以上的年份开始计算 鄙人查过了1900年的一月一日是 星期一属于开始日期 接收好数据之后 循环累加 从用户输入的年份到1900年的总天数 for(int i = 1900;i年份;i++){ //记住不能小于等于 因为月份是等下要累加的 if(i%4==0||i%400==0i%100!=0){ 润年:能给四整除或四百整除 但不能被100整除 sum +=366; // += 等价于sum = sum+366; }else{ sum +=365; } } 年份的天数累加好了 接着累加 月份的 先确定下 最后一个月份是不能累加的 因为最后一个月份是要用来显示的 我们先累加用户输入的月之前的 月份总天数 for(int i = 1;i=月份;i++){ 这里就要小于和等于了 因为.我们不但要计算输入月份之前的天数 还需要判断//最后一个月份的天数 switch(i){ case 1: case 3: case 5: case 7: case 8: case 11: day = 31; //大月为 1 3 5 7 8 11 break; case 2: if(i%4==0||i%400==0i%100!=0){ day = 28; }else{ day = 29; } break; //也可以用三目算法 day = i%4==0||i%400==0i%100!=0? 28: 29; // 此算法一般只用于判断俩个 条件 后面要加问号哦 default: day = 30; } switch外面 for循环里面加入if判断 if(imonth){ // 这里必须是小于 不包括要输出的那个月份天数 sum +=day; } 好了 天数累加好了 接着计算星期几 week = sum%7 +1 这里加呢 是因为 我们计算的 天数之和 并无包括 1900年1月1日的 当天在内 求出了星期几之后还要加这个判断 if(week==7){ week = 0; } // 为什么呢 就是为了下面的格式化日期 System.out.println(星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六); for(int i = 0;iweek;i++){ System.out.print(i+"\t"); } int g; for(int i = 1;i=day;i++){ g = i + week; //天数加上星期几 这样刚好符合日期格式要求 if(g%7==0){ System.out.println(); } } 动手做下看吧 没什么难度 应该适合你吧 你那样做太麻烦了吧
Q2: Java程序:输入某年某月某日,判断该天星期几,是这一年的第几天.
输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来, 然后再加上5天即本年的第几天,特殊情况, 闰年且输入月份大于3时需考虑多加一天。
java是一门面向对象的编程语言。
java语言具有功能强大和简单易用两个特征,具有简单性、面向对象、分布式等特点,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
关于计算第几天java代码和java计算多少天的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






