将我的方法修改为String而不是void

时间:2013-03-04 16:59:58

标签: java string oop public void

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

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

现在,如果我将它作为公共空白明天()并且只是写

,这样可以正常工作
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

但是我希望明天()还有将修改日期打印为字符串的功能,显然我需要明天制作我的方法 public String ()并有一个返回部分,但我不完全确定我要返回的内容,我已经尝试返回showDate,但它无法正常工作。

非常感谢任何帮助。

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

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

3 个答案:

答案 0 :(得分:0)

您的ShowDate()必须仅打印,不返回任何内容。因此,如果您尝试返回ShowDate并且tomorrow()中的返回类型为String,则会给出编译时错误。 所以,你能做的是:

  1. 进入showDate()方法,查找正在打印的内容,然后返回showDate()打印在tomorrow()中的相同内容。

  2. showDate()打印与tomorrow()打印完全相同的内容。在这种情况下,您无需修改​​tomorrow()方法即可返回string

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

  4. 最后但并非最不重要,我建议你从明天起返回Date对象本身,并在该对象上调用showDate()。

答案 1 :(得分:0)

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

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

假设 showDate()打印

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

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

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

如果你没有方法将日期作为字符串,因为showDate()打印它,我建议实现它并在showDate调用它,因为如果你想要改变格式,添加某事。或者它有一个错误,你不必多次写/纠正它。

答案 2 :(得分: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