2016-03-21 29 views
0

我有一個插入Google Fit Api的應用程序,並返回最近7天的步驟,方法如下。正如屏幕截圖顯示的,但我希望將這一天添加到步數。在Java中使用日曆帶走了一天嗎?

我已經嘗試了很多選項,一次拿走7個循環的一天,但沒有運氣,它只是說當天。任何幫助將非常感謝你。

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); 

     } 
    } 

} 

有7個數據集btw。

enter image description here

回答

1

如果通過「一次拿走一天」意味着你想要日子倒退,那麼這裏是如何:

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 
} 

輸出

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

謝謝你改變了升技,但這個想法是正確的:)得到它的工作到底有你的幫助 – Rueben

0

要減一日常使用下面的代碼:

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

這將減去7天的日曆,讓你日起7天前:

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

注意,這將翻轉前幾個月和幾年如你希望它會。 – tyrel