Es ist eine Anforderung: Erstellen Sie eine Methode und generieren Sie zwischen 1990-12-31 00:00 00 00 und 2013-12-31 00:00:00.
Die Idee ist wie folgt: In der Java -API sind der Datumstyp und der lange Typ sehr einfach zu konvertieren, sodass wir das Problem in einen Wert zwischen zwei langen Typzahlen umwandeln können.
Gleichzeitig müssen Sie verstehen: math.round (doppelte) math.random (); Neues Datum (Jahr, Monat, Tag); Kalender in der Java -API.
Math.Random () erzeugt zufällig zufällige Doppeltypen, die größer oder gleich 0 oder weniger als 1 sind.
Math.Round (doppelt) erfordert, dass ein doppelter Typ übergeben wird, um den langen Typ zurückzugeben, der diesem Doppeltyp am nächsten liegt.
Kalender ist eine Werkzeugklasse, die Zeit verarbeitet. Wie Datum wird auch der Monat des Kalenders aus 0 berechnet.
Der spezifische Code ist wie folgt
public static String randomDateBetweenMinandMax () {Calendar calendar = calendar.getInstance (); // Beachten Sie, dass der Monat von 1 Kalender abgezogen werden muss. Calendar.getTime (). GetTime (); // Gemäß den Anforderungen sollten die Zeit, Minute und Sekunde auf 0 Calendar.set (Calendar.hour_of_day, 0) festgelegt werden; Calendar.set (Calendar.minute, 0); Calendar.set (Calendar.second, 0); long min = calendar.getTime (). GetTime () ;; Calendar.set (2013, 11,31); Calendar.set (Calendar.hour_of_day, 0); Calendar.set (Calendar.minute, 0); Calendar.set (Calendar.second, 0); Calendar.getTime (). GetTime (); long max = calendar.getTime (). GetTime (); // den Doppelwert größer oder gleich min von weniger als max doppelt randomdate = math.random ()*(max-min)+min; // den Doppelwert in eine Ganzzahl umrund und in lange Typkalender umwandeln. return calendar.getTime (). toString (); } Wenn Sie die Datumsklasse verwenden möchten, um die Zeit zu verarbeiten, müssen Sie beachten, dass das Jahr ab 1900 beginnt. Sie müssen also 1900 abziehen. Der Monat beginnt ab 0, sodass Sie 1. Zum Beispiel das Datumsobjekt, das bis zum neuen Datum (2013, 10, 10) dargestellt wird, der 10. November 3913 ist.
System.out.println (neues Datum (2013, 10,10));
Das Ergebnis ist: Montag 10. November 00:00:00 CST 3913
Ändern Sie das obige Problem geringfügig. Wenn Mindate und MaxDate wissen, müssen jeden Tag dieses Zeitintervalls in die Liste platziert werden.
public static void getDateBetweenMaxandmin () {list <Date> list = new ArrayList <Date> (); Calendar Calendar = Calendar.getInstance (); Calendar.set (2010, 10,10); Datum mindate = calendar.getTime (); // Mindestzeitkalender.set (2013, 11,1); Datum maxdate = calendar.getTime (); // Maximale Zeit // Berechnen Sie, wie viele Tage zwischen zwei Zeitpunkten intaldays = ints.Checkedcast ((maxdate.getTime ()) - mindate.getTime ())/(1000 * 60 * 60 * 24)); Kalender.Settime (Mindate); Calendar.set (Calendar.hour_of_day, 0); Calendar.set (Calendar.minute, 0); Calendar.set (Calendar.second, 0); für (int i = 0; i <= total tage; i ++) {if (i! = 0) {// 1 calendar.add (calendar.day_of_month, 1) hinzufügen; } list.add (calendar.getTime ()); }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.