22. januar 2003 - 09:48
Der er
12 kommentarer og 1 løsning
Metode, som kan finde datoen for de næste ti fredage
Jeg står med en int ugedag, der har værdien 5. Dette udtrykker, at det er fredag. På baggrund af denne værdi, skal jeg bruge en metode, som kan returnere datoerne for de næste 10 fredage. Metoden skal naturligvis tage min ugedag variabel som argument.
Annonceindlæg fra Cepheo
22. januar 2003 - 10:06
#1
import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class WeekDay { public static Date next(int n, int weekday) { Calendar ref = new GregorianCalendar(); while(ref.get(Calendar.DAY_OF_WEEK) != weekday) { ref.add(Calendar.DAY_OF_YEAR, 1); } ref.add(Calendar.WEEK_OF_YEAR, n); return ref.getTime(); } public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println(i + " : " + next(i, Calendar.FRIDAY)); } } }
22. januar 2003 - 10:07
#2
Ovenstående program finder de næste 10 fredage.
22. januar 2003 - 10:14
#3
arne_v::: Kalder du det et program??? Hmmm ville godt kende din defination af et "program" *SS* Men klassen ser godt ud!!!
22. januar 2003 - 10:22
#4
Program = noget som kan køres selvstændigt. Jeg regner da med at du sletter den main metode, men jeg ville jo godt lige checke at det virkede inden jeg postede koden.
22. januar 2003 - 11:10
#5
noex: Prøv at søg på sitet, lignende spørgsmål er blevet besvaret mange gange. Ingen grund til at bruge point på problemmer der er blevet løst før.
22. januar 2003 - 12:03
#6
Perfekt. Jeg takker og bukker :-)
22. januar 2003 - 13:36
#7
Hvordan kan man gøre det sådan at man går tilbage i tiden istedet for frem? Altså så man se de 10 forrige fredage istedet for kommende? Lige en anden ting, hvis man nu går 1000 fredage frem eller tilbage i tiden, tager den så højde for skudår?
22. januar 2003 - 13:40
#8
Ja. Den tager højde for skudår.
22. januar 2003 - 13:43
#9
Det lyder godt, så kan man jo uden de store problemer fx finde ud af hvilken dag man blev født... Takker :o)
22. januar 2003 - 13:44
#10
For at køre baglæns: import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class WeekDayBack { public static Date next(int n, int weekday) { Calendar ref = new GregorianCalendar(); while(ref.get(Calendar.DAY_OF_WEEK) != weekday) { ref.add(Calendar.DAY_OF_YEAR, -1); } ref.add(Calendar.WEEK_OF_YEAR, -n); return ref.getTime(); } public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println(i + " : " + next(i, Calendar.FRIDAY)); } } }
22. januar 2003 - 13:46
#11
Bemærk lige at hvis du vil køre både forlæns og baglæns så skal du blive enig om en konvention for hvad 1 frem og 1 tilbage er. Mit fremad program går frem til næste af ugedagen og kalder den 0 og bruger det som basis. Mit tilbage program går tilbage til sidste af ugedagen og kalder den 0 og bruget det som basis.
22. januar 2003 - 13:48
#12
import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class WeekDay { public static Date next(int n, int weekday) { Calendar ref = new GregorianCalendar(); while(ref.get(Calendar.DAY_OF_WEEK) != weekday) { ref.add(Calendar.DAY_OF_YEAR, 1); } ref.add(Calendar.WEEK_OF_YEAR, n); return ref.getTime(); } public static void main(String[] args) { for (int i = -10; i <= 10; i++) { System.out.println(i + " : " + next(i, Calendar.FRIDAY)); } } } er konsistent. Næste forekomst af ugendagen er 0 og positive tal betyder frem og negative tal tilbage.
22. januar 2003 - 13:55
#13
Forrygende Arne, dejligt med lidt forklaring :o)
Kurser inden for grundlæggende programmering