コード例 #1
0
  @Override
  public void add(CalendarEntry newEntry) throws Exception {
    // vi måste skapa intersects-metoden

    List<CalendarEntry> tempColissionFreeCalendar = new ArrayList<CalendarEntry>();
    List<CalendarEntry> tempColissionCalendar = new ArrayList<CalendarEntry>();
    tempColissionCalendar.add(newEntry);
    for (CalendarEntry entry : calendar) {
      if (entry.intersects(newEntry)) {
        tempColissionCalendar.add(entry);
      } else {
        tempColissionFreeCalendar.add(entry);
      }
    }
    LocalDateTime tempStart = null;
    LocalDateTime tempEnd = null;

    for (CalendarEntry entry : tempColissionCalendar) {
      if (tempStart == null || tempStart.compareTo(entry.getBeginEvent()) > 0) {
        tempStart = entry.getBeginEvent();
      }
      if (tempEnd == null || tempEnd.compareTo(entry.getEndEvent()) < 0) {
        tempEnd = entry.getEndEvent();
      }
    }
    CalendarEntry tempEntry = new CalendarEntry(tempStart, tempEnd);
    tempColissionFreeCalendar.add(tempEntry);
    calendar = tempColissionFreeCalendar;

    /*			för varje entry i calendar: testa om det överlappar med newEntry
    			Om det inte överlappar - hoppa till nästa entry i calendar
    			Om det överlappar - hoppa till "så länge som det överlappar"


    		Så länge som det det överlappar:
    			1. Ta entryt som överlappade och flyttar till ny temp. lista
    			2. Hoppa till nästa entry i calendar


    		När det inte överlappar längre: Då ska vi jobba med temp.listan

    		Templistjobb: ta den starttid som är först och den sluttid som är sist och av detta skapar vi ett nytt CalendarEntry

    		Efter skapande av nytt CalendarEntry lägger vi in detta i Calendar

    		Sist sorterar vi calendar


    		Om inget överlapp hittades: lägg in newEntry sist i calendar och sortera calendar
    */
  }
コード例 #2
0
ファイル: p019.java プロジェクト: sunnytran/Project-Euler
 public static void main(String args[]) {
   LocalDateTime dt = LocalDateTime.of(1901, 1, 1, 0, 0);
   LocalDateTime stop = LocalDateTime.of(2000, 12, 31, 0, 0);
   int count = 0;
   while (dt.compareTo(stop) != 0) {
     if (dt.getDayOfMonth() == 1 && dt.getDayOfWeek() == DayOfWeek.SUNDAY) count++;
     dt = dt.plusDays(1);
   }
   System.out.println(count);
 }