Geburtsdatum Intervalle

Leno

Bekanntes Mitglied
Hi liebes Forum 😀,

habe schon wieder eine Frage ( was würde ich ohne euch tun ;( )
Ich möchte geburtstage generieren und das in Intervallen.

z.B. 1954 - 2000 oder so ähnlich. Aber die Daten die dabei rauskommen müssen
auch dem tatsächlichen Kalender entsprechen, also sowas wie der 36.03.201 soll nicht rumkommen.
Hat jemand eine Idee?
 
ja habe ich schon gesehen, komme aber damit nicht zurecht.
Habe ein Intervall angelegt aber der schmeißt ne Exception.

Weiß leider nicht wie das mit Intervallen funktioniert.
 
Meine Glaskugel ist kaputt....


daher kann ich die Exception nicht sehen. Vll. hat hier jmd eine funktionierende Glaskugel die auch deinen Code erkennen kann.


-.-
 
Warum nicht java.util.Calendar?
Java:
Calendar rightNow = Calendar.getInstance();
for(int i=0; i<10; i++) {
     rightNow.add(Calendar.DATE, -90); // 90 Tage zurück gehen
     System.out.println(rightNow.getTime());
}
 
Weil man mit Joda sowas viel sprechender und imho damit eleganter machen kann

Java:
		LocalDate rigthNow = new LocalDate();
		rigthNow.minusDays(1);
		rigthNow.minusMonths(1);
		rigthNow.minusYears(1);
 
Ok vielen Dank für die Ansätze,wollte es aber mit Joda versuchen.

Also hier mal mein Code :

Java:
import org.joda.time.*;


public class jodaTest {

	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	
		// OK mein StartDatum 
		DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0);
		// OK mein EndDatum
		DateTime end = new DateTime(2005, 1, 1, 0, 0, 0, 0);
		
		// Instanziere ein Interval Objekt mit strat und ende.
		Interval interval = new Interval(start, end);

	    DateTime myDate = new DateTime(interval);
		
	
	}

}


Und hier die dazugehörige Exception :


Exception in thread "main" java.lang.IllegalArgumentException: No instant converter found for type: org.joda.time.Interval
at org.joda.time.convert.ConverterManager.getInstantConverter(ConverterManager.java:165)
at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:169)
at org.joda.time.DateTime.<init>(DateTime.java:241)
at jodaTest.main(jodaTest.java:20)


Aber warum ?? ich dachte ich erzeuge ein Intervall und dieses übergebe ich an ein neues DateTime Objekt und instanziere so ein Datum in diesem Intervall.Kann mir jemand einen Tip geben was ich falsch mache.Danke im Voraus.
 
Du könntest dir einfach zwei Date-Objekte mit dem Start- und dem Enddatum erzeugen. Dann lässt du dir mit
Code:
.getTime()
die Daten als Long Integer-Wert herausgeben und ziehst sie voneinander ab.

Dann erzeugst du eine Zufallszahl zwischen null und der gerade errechneten Differenz und addierst sie auf den Long-Wert der unteren Schranke. Das Ergebnis kannst du dann als Parameter für ein neues Date-Objekt, das dann ein gültiges Datum innerhalb des Intervalls enthält.
 

Neue Themen


Zurück
Oben