2016-03-21 3 views
0

Ich habe eine Anwendung, die in Google Fit Api eingesteckt wird und die Schritte für die letzten 7 Tage zurückgibt, die Methode ist unten. Wie der Screenshot zeigt, möchte ich den Tag zur Schrittzahl hinzufügen.Nehmen Sie einen einzigen Tag mit Kalender in Java?

Ich habe viele Optionen ausprobiert, um einen Tag zu einer Zeit für die 7 Schleife wegzunehmen, hatte aber kein Glück, es sagt nur noch am selben Tag. Jede Hilfe wäre großartig, danke.

private void dumpDataSet(DataSet dataSet) { 
    Log.i(TAG, "Data returned for Data type: " + dataSet.getDataType().getName()); 
    DateFormat dateFormat = DateFormat.getTimeInstance(); 

    int i = 0; 

    for (DataPoint dp : dataSet.getDataPoints()) { 

     for(Field field : dp.getDataType().getFields()) { //loop 7 times 

      int test = dp.getValue(field).asInt(); 

      String weekSteps= String.valueOf(test); //get weekday steps one at a time 

      SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); 



      Calendar cal = Calendar.getInstance(); 
      String weekday = sdf.format(cal.getTime()); 

      String weekStepsFinal= weekSteps + " steps on " + weekday; //set Textfield to steps and the day 

      FeedItem item = new FeedItem(); 
      item.setTitle(weekStepsFinal); 

      feedItemList.add(item); 

     } 
    } 

} 

Es gibt 7 Datensätze btw.

enter image description here

Antwort

1

Wenn Mit "nimm einen Tag auf einmal" bedeutet, dass du die Tage rückwärts gehen willst, dann folgt hier:

SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); 

System.out.println("Last 7 days (starting today):"); 
Calendar cal = Calendar.getInstance(); // Initialized to today/now 
for (int i = 0; i < 7; i++) { 
    System.out.println(" " + sdf.format(cal.getTime())); 
    cal.add(Calendar.DAY_OF_MONTH, -1); // Update to previous day at same time-of-day 
} 

OUTPUT

Last 7 days (starting today): 
    Monday 
    Sunday 
    Saturday 
    Friday 
    Thursday 
    Wednesday 
    Tuesday 
+0

Danke abit aber die Idee war richtig :) Am Ende funktioniert es mit deiner Hilfe – Rueben

0

eines Tages den folgenden Code zu subtrahieren:

int DAY_IN_MILLIS = 1000 * 60 * 60 * 24; 
Date currentDate = new Date(); 
long previousDay = currentDate.getTime()-DAY_IN_MILLIS; 

SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); 
String day = sdf.format(previousDay); 
1

Diese 7 Tage aus dem Kalender subtrahieren Sie das Datum vor 7 Tagen zu erhalten:

Calendar cal = Calendar.getInstance(); 
cal.add(Calendar.DAY_OF_MONTH, -7). 
+0

Beachten Sie, dass dies zu den Vormonaten überschlagen wird und Jahre, wie Sie hoffen würde, es würde. – tyrel

Verwandte Themen