Hallo zusammen,
ich wollte mir eine Funktion zusammenbasteln, die mir ein zufälliges Geburtsdatum in Abhängigkeit von einem minimalen und maximalen Alter zurückgibt. Es wird dabei nicht das aktuelle Datum verwendet, sondern das Datum wird übergeben.
und der Aufruf:
Vor den folgenden Zeilen sieht alles normal aus, die Variablen CalendarMin und CalendarMax enthalten das Datum von CDate.
Nach den beiden Zeilen stehen beide auf '01.01.1960' und ich weiß partout nicht warum...
Gruß,
Derpendja
ich wollte mir eine Funktion zusammenbasteln, die mir ein zufälliges Geburtsdatum in Abhängigkeit von einem minimalen und maximalen Alter zurückgibt. Es wird dabei nicht das aktuelle Datum verwendet, sondern das Datum wird übergeben.
Java:
private static GregorianCalendar GetRandomBirth(int AgeMin, int AgeMax, GregorianCalendar CDate) {
GregorianCalendar CalendarMin = CDate;
GregorianCalendar CalendarMax = CDate;
CalendarMax.add(Calendar.YEAR, (int) ((-1) * AgeMax));
CalendarMin.add(Calendar.YEAR, (int) ((-1) * AgeMin));
long diffInMillis = CalendarMin.getTimeInMillis() - CalendarMax.getTimeInMillis();
long diffInDays = diffInMillis / 1000 / 60 / 60 / 24;
CalendarMax.add(Calendar.DAY_OF_YEAR, GlobalFunctions.GetRandomValue(0,(int) diffInDays));
return CalendarMax;
}
und der Aufruf:
Java:
GregorianCalendar BirthdayCalendar = GetRandomBirth(MinAge, MaxAge, CurrentDate);
Vor den folgenden Zeilen sieht alles normal aus, die Variablen CalendarMin und CalendarMax enthalten das Datum von CDate.
Java:
CalendarMax.add(Calendar.YEAR, (int) ((-1) * AgeMax));
CalendarMin.add(Calendar.YEAR, (int) ((-1) * AgeMin));
Gruß,
Derpendja
Zuletzt bearbeitet: