addDays和addMonths到Java中的日期方法

时间:2014-09-30 20:05:09

标签: java methods calendar

我正在使用Netbeans 8.我还在进行计算机科学的初级课程。 我正在尝试编写两个addDays和addMonths方法。 这是方法

public void addMonths(int n) {
    month += n;
    if (month >= 13) {
      month = 0 + n - 1;
    }
}
public void addDays(int n) {
    day += n;
    if (day >= 32) {
      day = 0 + n ;
    }
}

我知道他们错了。有人可以帮我修理它们吗?请保持简单,不要使用高级编码。

2 个答案:

答案 0 :(得分:3)

你的情况应该是这样一个为计算定义的类。这是一个基本类。使用构造函数和3个添加方法。

请注意,这不包含任何数学生成正确的日期,例如feb有28天,闰年有29天。这段代码认为所有月份都是31天。

public class MyDate {
    private int year;
    private int month;
    private int day;

    public MyDate(int d,int m,int y){
        day=d;
        month=m;
        year=y;
    }

    public void addMonths(int n) {
        if(n>12){ // Checks if we trying to add more that 12 we add so many years
            addYears(n%12);
            n-= 12*(n%12);
        }
        month += n;
        if(month>=13){
            addYears(1);
            month-=12;
        }
    }
    public void addDays(int n) {
        if(n>31){
            addMonths(n%31);
            n-=31*(n%31);
        }
        day += n;
        if(day>=32) {
            day-=31;
            addMonths(1);
        }
    }
    public void addYears(int n) {
        year += n;
    }
}

答案 1 :(得分:1)

你可能想要这样的东西:

public void addMonths(int n) {
    month += n;
    numYear = month/12;
    month = (month % 12) + 1;
    addYears(numYear);
}

public void addDays(int n) {    
    day += n;
    numMonths = day/31;
    day = (day % 31) + 1;
    addMonths(numMonths);
}