日期的程序怎么写

时间:2025-01-17 21:34:00 游戏攻略

编写日期程序需要考虑以下几个关键点:

输入年、月、日:

程序需要接受用户输入的年、月、日信息。

日期增加和减少:

程序应能处理日期的增加和减少,并输出新的日期。

闰年判断:

程序需要判断输入的年份是否为闰年,以便正确处理2月的天数。

日期有效性检查:

程序应检查输入的日期是否有效,例如月份是否在1到12之间,日期是否在1到该月最大天数之间。

```java

import java.util.Scanner;

public class MyDate {

private int year;

private int month;

private int day;

// 无参数构造方法,使用当前系统时间

public MyDate() {

this.year = Calendar.getInstance().get(Calendar.YEAR);

this.month = Calendar.getInstance().get(Calendar.MONTH);

this.day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);

}

// 带参数的构造方法

public MyDate(int year, int month, int day) {

this.year = year;

this.month = month;

this.day = day;

}

// 增加若干天

public MyDate addDays(int days) {

Calendar cal = Calendar.getInstance();

cal.set(year, month, day);

cal.add(Calendar.DAY_OF_MONTH, days);

this.year = cal.get(Calendar.YEAR);

this.month = cal.get(Calendar.MONTH);

this.day = cal.get(Calendar.DAY_OF_MONTH);

return this;

}

// 减少若干天

public MyDate subtractDays(int days) {

Calendar cal = Calendar.getInstance();

cal.set(year, month, day);

cal.add(Calendar.DAY_OF_MONTH, -days);

this.year = cal.get(Calendar.YEAR);

this.month = cal.get(Calendar.MONTH);

this.day = cal.get(Calendar.DAY_OF_MONTH);

return this;

}

// 计算两个日期之间的天数差

public int daysBetween(MyDate other) {

Calendar cal1 = Calendar.getInstance();

cal1.set(year, month, day);

Calendar cal2 = Calendar.getInstance();

cal2.set(other.year, other.month, other.day);

return Math.abs(cal1.getTimeInMillis() - cal2.getTimeInMillis()) / (24 * 60 * 60 * 1000);

}

@Override

public String toString() {

return String.format("%04d-%02d-%02d", year, month + 1, day);

}

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("请输入日期(格式:yyyy-MM-dd):");

String input = scanner.nextLine();

String[] parts = input.split("-");

int year = Integer.parseInt(parts);

int month = Integer.parseInt(parts) - 1; // 月份从0开始

int day = Integer.parseInt(parts);

MyDate date = new MyDate(year, month, day);

System.out.println("输入的日期是:" + date);

System.out.println("增加10天后的日期是:" + date.addDays(10));

System.out.println("减少5天后的日期是:" + date.subtractDays(5));

System.out.println("与2025-01-14相差的天数是:" + date.daysBetween(new MyDate(2025, 1, 14)));

}

}

```

代码说明:

构造方法:

提供了无参数构造方法和带参数的构造方法。

增加和减少天数:

`addDays`和`subtractDays`方法分别用于增加和减少日期。

日期之间的天数差:

`daysBetween`方法计算两个日期之间的天数差。

主方法: