0

我目前有一个名为明天()的方法,它修改对象属性,在这种情况下是日,月,年(这不是 java.util.Date,我已经制作了自己的 Date 构造函数。)

因此,例如,如果我有一个名为 date1(30,12,2013) 的对象并且我运行 date1.tomorrow() 它将使 date1 = (1,1,2014) 注意:我们目前假设所有月份都有 30 天。

现在,如果我将其保留为 public void tomorrow() 并简单地写,这可以正常工作

date1.showDate(); // show original value
date1.tomorrow(); // add 1 to day, do some if statements if day > 30, etc, etc
date1.showDate(); // show modified value

但是我希望明天()也具有将修改后的日期打印为字符串的功能,显然我需要将我的方法公开字符串明天()并有一个返回部分,但我不完全确定我要返回什么,我试过返回 showDate 但它不能正常工作。

任何帮助将不胜感激。

注意:这是我目前的明天()方法

public void tomorrow()
{
        this.day++;
     if(this.day > 30)
        {
                this.day = 1;
                this.month++;
        }
        if(this.month > 12)
        {
                this.month = 1;
                this.year++;
        }
}
4

3 回答 3

0

我不确定您是要打印日期还是返回字符串。如果你想打印它,你可以这样做:

System.out.println(day + ......);

或者,假设 showDate()打印

public void tomorrow()
{
     ....
     showDate();
 }

但是如果你想返回它,你可以返回一个字符串,你可以从 showDate() 获得(假设public/private String showDate()

public String tomorrow()
{
     ....
     return showDate();
 }

如果您没有将日期作为字符串获取的方法,因为showDate()yust 会打印它,我建议您实现它并在此处和中调用它showDate,因为如果您想更改格式,请添加。或者其中有一个错误,您不必多次编写/更正它。

于 2013-03-04T17:19:11.323 回答
0

如果您的要求是在当前日期添加一天并将其作为字符串形式返回,您可以修改您的方法,如下所示:

public String getTomorrow(String today) throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(simpleDateFormat.parse(today));
        calendar.add(Calendar.DATE, 1);  // Adding one day to input date
        return simpleDateFormat.format(calendar.getTime());
    }

请在下面找到示例测试结果以便更好地理解:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class DateHelper {

    public String getTomorrow(String today) throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(simpleDateFormat.parse(today));
        calendar.add(Calendar.DATE, 1);  // Adding one day to input date
        return simpleDateFormat.format(calendar.getTime());
    }

    public static void main(String[] args) throws ParseException {
        DateHelper dateHelper = new DateHelper();
        System.out.println(dateHelper.getTomorrow("28-02-2013"));
        System.out.println(dateHelper.getTomorrow("04-03-2013"));
        System.out.println(dateHelper.getTomorrow("31-03-2013"));
    }

}

它将产生输出:

01-03-2013
05-03-2013
01-04-2013
于 2013-03-04T17:21:49.597 回答
0

ShowDate()必须只打印,不返回任何东西。因此,如果您尝试返回 ShowDate 并且您的返回类型为tomorrow()is String,它将给您编译时错误。所以,你可以做的是:

  1. 进入你的showDate()方法,找到它正在打印的内容,然后返回showDate()在你的tomorrow().

  2. showDate()从您的tomorrow(). 在这种情况下,您不必将tomorrow()方法修改为 return string

  3. 如果您不喜欢上述两个选项中的任何一个,并且无论如何都希望返回值String,请遵循上面 PremGenError 的答案。

  4. 最后但并非最不重要的一点是,我建议您从明天开始返回 Date 对象本身,并在该对象上调用 showDate() 。

于 2013-03-04T17:12:34.230 回答