webentwicklung-frage-antwort-db.com.de

Hinzufügen von Tagen zum Datum in Android

In meiner Datenbank erhalte ich ein Startdatum wie das Format 2011-11-30 (JJJJ/MM/TT) und das Datum der Dauer wie 40 Tage.

Kann mir jemand helfen

Vielen Dank 

23
user1061793

Sie können so etwas versuchen, 

String dt = "2012-01-04";  // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
try {
    c.setTime(sdf.parse(dt));
} catch (ParseException e) {
    e.printStackTrace();
}
c.add(Calendar.DATE, 40);  // number of days to add, can also use Calendar.DAY_OF_MONTH in place of Calendar.DATE
SimpleDateFormat sdf1 = new SimpleDateFormat("MM-dd-yyyy");
String output = sdf1.format(c.getTime()); 
66
Lalit Poptani

Schritt-1 Holen Sie sich die Kalenderinstanz aus der angegebenen Zeichenfolge

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = Calendar.getInstance();
            c.setTime(sdf.parse(dateInString));

Schritt 2 Verwenden Sie add(), um dem Kalender die Anzahl der Tage hinzuzufügen

c.add(Calendar.DATE, 40); 

Schritt-3 Konvertiere die Datumsangaben in das resultierende Datumsformat

sdf = new SimpleDateFormat("MM/dd/yyyy");
            Date resultdate = new Date(c.getTimeInMillis());
            dateInString = sdf.format(resultdate);

Quellcode

String dateInString = "2011-11-30";  // Start date
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = Calendar.getInstance();
        c.setTime(sdf.parse(dateInString));
        c.add(Calendar.DATE, 40);  
        sdf = new SimpleDateFormat("MM/dd/yyyy");
        Date resultdate = new Date(c.getTimeInMillis());
        dateInString = sdf.format(resultdate);
        System.out.println("String date:"+dateInString);
20
Date dtStartDate=o.getStartDate();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Calendar c = Calendar.getInstance();
c.setTime(dtStartDate);
c.add(Calendar.DATE, 3);  // number of days to add
String dt = sdf.format(c.getTime());  // dt is now the new date
Toast.makeText(this, "" + dt, 5000).show();
7
Roadies

Dieser Code funktioniert 100%

            Calendar c = Calendar.getInstance();
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");// HH:mm:ss");
            String reg_date = df.format(c.getTime());
            showtoast("Currrent Date Time : "+reg_date);

            c.add(Calendar.DATE, 3);  // number of days to add
            String end_date = df.format(c.getTime());
            showtoast("end Time : "+end_date);
3
Pir Fahim Shah

Dieses Stück Code sollte die Arbeit gut machen !!! 

public static Date addDay(Date oldDate, int numberOfDays) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Calendar c = Calendar.getInstance();
    try {
        c.setTime(dateFormat.parse(oldDate));
    } catch (ParseException e) {
        e.printStackTrace();
    }
    c.add(Calendar.DAY_OF_YEAR,numberOfDays);
    dateFormat=new SimpleDateFormat("MM-dd-YYYY");
    Date newDate=new Date(c.getTimeInMillis());
    String resultDate=dateFormat.format(newDate);
}

Weitere Funktionen finden Sie unter diesem Link
Tage, Monate, Jahre zu einem Datum hinzufügen

1
Aashis Shrestha
Calendar c = Calendar.getInstance();
    int mYear = c.get(Calendar.YEAR);
    int mMonth = c.get(Calendar.MONTH);
    int mDay = c.get(Calendar.DAY_OF_MONTH);

    // display the current date
    String CurrentDate = mYear + "/" + mMonth + "/" + mDay;

    String dateInString = CurrentDate; // Start date
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

    c = Calendar.getInstance();

    try {
        c.setTime(sdf.parse(dateInString));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    c.add(Calendar.DATE, 7656);//insert the number of days you want to be added to the current date
    sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date resultdate = new Date(c.getTimeInMillis());
    dateInString = sdf.format(resultdate);

    //Display the Result in the Edit Text or Text View your Choice
    EditText etDOR = (EditText)findViewById(R.id.etDateOfReturn);
    etDOR.setText(dateInString);
1
Alex Muriithi

Für mich geht das.

Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);

String CurrentDate = mYear + "/" + mMonth + "/" + mDay;
String dateInString = dob; // Select date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
c = Calendar.getInstance();
try {
c.setTime(sdf.parse(dateInString));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
c.add(Calendar.DATE, 14);    //14 dats add
sdf = new SimpleDateFormat("dd/MM/yyyy");
Date resultdate = new Date(c.getTimeInMillis());
dateInString = sdf.format(resultdate);
System.out.println(dateInString);
0
tapan prajapati

Einfach diese Methode kopieren, um Daten zu übergeben 

public static String ConvertToDate(String dateString,String inputFormater ,String outputFormater) {
        String outputText = "" ;
        try {
            SimpleDateFormat inputFormat = new SimpleDateFormat(inputFormater);
            SimpleDateFormat outputFormat = new SimpleDateFormat(outputFormater);
            Date parsed = null;
            parsed = inputFormat.parse(dateString);
            outputText = outputFormat.format(parsed);

        Log.d(TAG, "  msg : " + outputText);
        } catch (ParseException e) {
            e.printStackTrace();
            Log.e(TAG, "ERROR : " + e.getMessage());
        }
        return outputText;
    } 

Und nennen Sie es gerne 

 public static String INPUTE_JSON_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
 public static String FORMAT_FOR_JOB_APPLIED = "MMM dd, yyyy";
 String date ="2017-10-29";
 ConvertToDate(date ,DateUtils.INPUTE_JSON_DATE_FORMAT ,DateUtils.FORMAT_FOR_JOB_APPLIED);  

Sie können jedes Format in Ihre Situation setzen 

ConvertToDate("2011-11-30","yyyy/mm/dd" ,"mm/dd/yyyy");  
0
sushant gosavi