Geburtsdatum Intervalle

Leno

Bekanntes Mitglied
Hi liebes Forum :D,

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?
 

Leno

Bekanntes Mitglied
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.
 

timbeau

Gesperrter Benutzer
Meine Glaskugel ist kaputt....


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


-.-
 

HoaX

Top Contributor
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());
}
 
A

Andgalf

Gast
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);
 

Leno

Bekanntes Mitglied
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.
 

M_Schaffrath

Aktives Mitglied
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.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7

Ähnliche Java Themen


Oben