0

私は現在、この場合は日、月、年であるオブジェクト属性を変更するtomorrow()というメソッドを持っています(これは 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

しかし、 Tomorrow ()にも、変更された日付を文字列として出力する関数が必要です。明らかに、メソッドをpublic String Tomorrow()にし、return セクションを用意する必要がありますが、何を返すのか完全にはわかりません。 showDate を返そうとしましたが、正しく動作しません。

どんな助けでも大歓迎です。

注: これは現在、Tomorrow() メソッド用に持っているものです

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ます。フォーマットを変更する場合は、sthを追加するためです。または、バグがあり、何度も書き込んだり修正したりする必要はありません。

于 2013-03-04T17:19:11.323 に答える
0

要件が現在の日付に 1 日を追加し、それを文字列形式のメソッドとして返すことである場合は、以下に示すようにメソッドを変更できます。

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()isStringであると、コンパイル時エラーが発生します。だから、あなたができることは次のとおりです。

  1. あなたのshowDate()メソッドに行き、それが印刷しているものを見つけてshowDate()、あなたのtomorrow().

  2. showDate()を印刷しているものとまったく同じものをtomorrow(). この場合、tomorrow()メソッドを変更して を返す必要はありませんstring

  3. 上記の 2 つのオプションのいずれも気に入らず、何があっても値を返したい場合は、String上記の PremGenError による回答に従ってください。

  4. 最後になりましたが、明日から Date オブジェクト自体を返し、そのオブジェクトで showDate() を呼び出すことをお勧めします。

于 2013-03-04T17:12:34.230 に答える