2016-07-29 53 views

回答

2

爲了給你一個想法(因爲你標記了JAVA),在JAVA中,這可以使用Date API來完成。對於測試,我只是檢查5周,你可以一直到90周。請注意,這提供了一個想法,可以優化,可能是的

public static void main(String[] args) { 
    try { 
     LocalDateTime localDateTime = LocalDate.now().atStartOfDay(); 
     DayOfWeek dotw = localDateTime.getDayOfWeek(); 
     String dayOfTheWeek = dotw.name(); 

     for (int daysOfTheWeek = 1; daysOfTheWeek < 7; daysOfTheWeek++) { 
      if (dayOfTheWeek.equals(DayOfWeek.FRIDAY.name())) { 
       break; 
      } else { 
       localDateTime = LocalDate.now().atStartOfDay().minusDays(daysOfTheWeek); 
       dotw = localDateTime.getDayOfWeek(); 
       dayOfTheWeek = dotw.name(); 
      } 
     } 
     ArrayList<LocalDate> localDates = new ArrayList<LocalDate>(); 

     for (int weekCount = 0; weekCount < 5; weekCount++) { 
      localDates.add(localDateTime.minusWeeks(weekCount).toLocalDate()); 
     } 
     System.out.println(localDates); 

    } catch (final Throwable t) { 
     t.printStackTrace(); 
    } 
} 
+1

僅供參考您可以通過幾種方式改進您的代碼:無需LocalDateTime(LocalDate就足夠了);使用時間調節器(例如:previousOrSame來獲取前一個FRIDAY而不必循環)。看例如:http://ideone.com/MRWBxj – assylias

+0

感謝@assylias,瞭解了一些東西或2與該片段。謝謝你 –

相關問題