-2

私のアプリケーションでは、1つの編集テキストボックスがあり、このユーザーは日付を入力します。私が欲しいのは、ユーザーが入力した日付から7日目の日付を取得する必要があることです。グーグルで検索したところ、1つの解決策が見つかりました。

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");                    
Calendar cal = Calendar.getInstance();
cal.add("field", +7);
String currentDateandTime = sdf.format(cal.getTime());

上記のcal.add("field",+7)->フィールドはintですが、日付形式は文字列です。ここでは使用できません。助けてください。

4

5 に答える 5

1

SimpleDateFormatから日付を取得し、この日付オブジェクトをカレンダーに追加してから、カレンダーに変更します。また、カレンダーから新しい更新日を取得します。コードを投稿するのを待ってください

try {
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date UserEnterDate = sdf.parse("String from your editbox");
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(UserEnterDate);
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    day = day + 7;
    calendar.set(Calendar.DAY_OF_MONTH, day);
    String newDate = calendar.get(Calendar.DAY_OF_MONTH) + "/"
                                + calendar.get(Calendar.MONTH) + "/"
                                + calendar.get(Calendar.YEAR);
} catch (Exception e) {
    // TODO: handle exception
}
于 2012-07-25T09:18:55.607 に答える
0
As you said thatyou got the date in string format.
So let me start from there
Suppose the date is:
String dt = "2008-01-05";  // Start date
Then do thhis::   
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     Calendar c = Calendar.getInstance();
     try {
        c.setTime(sdf.parse(dt));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     c.add(Calendar.DATE, 7);  // number of days to add
     dt = sdf.format(c.getTime());
     System.out.println(""+dt);

Hope.thisは間違いなくあなたを助けます。楽しみ!!!

于 2012-07-25T09:21:17.093 に答える
0

で使用DatePickerDialogする方が良いことをお勧めしますonClick()EditText

次に、個々の日付月年を取得します。次に、日付を設定できます

Date+=7
于 2012-07-25T09:22:08.713 に答える
0

形式がわかっている場合は、文字列から日付オブジェクトを取得できます。質問によると、形式は次のとおりです。

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");                    
                       Calendar cal = Calendar.getInstance();
                       cal.add("field", +7);
                       String currentDateandTime = sdf.format(cal.getTime());

次に、この日付形式を使用して文字列を解析し、Dateオブジェクトを取得します。

Date dt=sdf.parse(txtDt.getText().toString());

この日付をCalendarObjectに設定します。

Calendar cal=Calendar.getInstance();
cal.setTime(dt);

ここで、この日付に7日を追加する必要があるため、次のようにします。

cal.add(Calendar.DAY_OF_MONTH, 7);

これで、日付に7日が正常に追加されました。次に、次を使用して、このCalendarオブジェクトからDateを取得します。

Date dtNew=cal.getTime();

次を使用して、読み取り可能な文字列に変換できます。

String strNewDt=sdf.format(dtNew);
于 2012-07-25T09:32:30.503 に答える
-1

変更するフィールドの名前を「field」パラメータに書き込む必要があります。ここでは、カレンダー参照へのリンクを示します。カレンダーオブジェクトは文字列ではなく、あなたが使用しているまったく異なる生き物です。その機能を使用してそれを行います。

http://developer.android.com/reference/java/util/Calendar.html

そして、あなたは書くでしょう

!編集、実際にはintを使用してカレンダーを設定し、文字列を解析して一致させる必要があります。カレンダーの集合関数を使用します。

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");                    
                   Calendar cal = new Calendar;
                   cal.set(int year, int month, int day, int hourOfDay, int minute)
                   cal.add(DATE, 7);
                   String currentDateandTime = sdf.format(cal.getTime());
于 2012-07-25T09:19:32.540 に答える