Java编写程序完成输人年份和月份,计算指定年份中的天数并含代码注解

如果有运行照片更好
2024年11月07日 05:43
有2个网友回答
网友(1):

/**
 * 在一个时间段计算出多少天
 * @param beginDate 开始时间
 * @param endDate 结束时间
 * @param format 格式 如果  yyyy-MM-dd;yyyy
 * @return 天数
 */
public static int getDay(String beginDate, String endDate, String format) {
try {
// 日期操作类,设置制定的格式
SimpleDateFormat sim = new SimpleDateFormat(format);
Date d1 = sim.parse(beginDate); // 传入开始时间
Date d2 = sim.parse(endDate);   // 传入结束时间
//计算开始时间和结束时间的时间差
int num = (int) ((d2.getTime() - d1.getTime()) / (3600L * 1000 * 24));
if(!format.equals("yyyy")) {
num = num + 1;
}
return num;
} catch (Exception e) {
e.printStackTrace();
return 0;
}

}

public static void main(String[] args) {
System.out.println(getDay("2018", "2020", "yyyy"));
System.out.println(getDay("2018-01-01", "2018-12-31", "yyyy-MM-dd"));
System.out.println(getDay("2019-02-07", "2019-02-11", "yyyy-MM-dd"));
}

年的月的都有,有什么疑问可以问我。

网友(2):

import java.io.*;
import java.util.Scanner;
class test  
{
public static void main() {
Scanner i = new Scanner(System.in);
int year = i.nextInt();/*年份*/
int month = i.nextInt();/*月份*/
int[] daysArg = {31,28,31,30,31,30,31,31,30,31,30,31};/*默认天数*/
int days = 0;
boolean isLeapYear = false;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
isLeapYear = true;/*闰年*/
}
days=daysArg[month-1];
if((month==2)&&(isLeapYear))/*闰年2月29天*/
{days = 29;}
System.out.println (days);/*输出*/
}
}