Oppgave 1
Dette skal stå foran for-løkken:
Calendar c = Calendar.getInstance(); // inneværende år c.set(Calendar.MONTH, 11); // måneder går fra 0 - 11, dvs. desember = 11
Oppgave 2
public static String julaften(int år) // fire siffer for år { Calendar c = new GregorianCalendar(år,Calendar.DECEMBER, 24); return String.format("%tA", c); } public static void main(String[] args) throws IOException { System.out.println(julaften(2017)); // Utskrift: søndag }
Oppgave 3
public static int ukedagJulaften(int ukedag) // søndag er 1, mandag 2, osv. { Calendar c = Calendar.getInstance(); // nå c.set(Calendar.MONTH, Calendar.DECEMBER); c.set(Calendar.DAY_OF_MONTH, 24); while (c.get(Calendar.DAY_OF_WEEK) != ukedag) { c.roll(Calendar.YEAR, true); } return c.get(Calendar.YEAR); } public static void main(String[] args) throws IOException { System.out.println(ukedagJulaften(Calendar.WEDNESDAY)); // Utskrift: 2025 }
Oppgave 4
Calendar[] tidspunkt = new Calendar[6]; tidspunkt[0] = new GregorianCalendar(2018, Calendar.DECEMBER, 24); tidspunkt[1] = new GregorianCalendar(2018, Calendar.MAY, 17); tidspunkt[2] = new GregorianCalendar(2017, Calendar.DECEMBER, 24); tidspunkt[3] = new GregorianCalendar(2017, Calendar.JUNE, 24); tidspunkt[4] = new GregorianCalendar(2018, Calendar.JANUARY, 1); tidspunkt[5] = new GregorianCalendar(2017, Calendar.DECEMBER, 31); Arrays.sort(tidspunkt); for (Calendar c : tidspunkt) { System.out.printf("%1$tA %1$te. %1$tB %1$tY%n", c); } /* lørdag 24. juni 2017 søndag 24. desember 2017 søndag 31. desember 2017 mandag 1. januar 2018 torsdag 17. mai 2018 mandag 24. desember 2018 */