Il y a une exigence: construire une méthode et générer de façon aléatoire à tout moment entre 1990-12-31 00:00 00 et 2013-12-31 00:00:00.
L'idée est la suivante: dans l'API Java, le type de date et le type long sont très faciles à convertir, afin que nous puissions convertir le problème en trouvant n'importe quelle valeur entre deux nombres de type long.
En même temps, vous devez comprendre: math.round (double) math.random (); Nouvelle date (année, mois, jour); Calendrier dans l'API Java.
Math.Random () générera au hasard des types doubles aléatoires supérieurs ou égaux à 0 ou moins de 1.
Math.round (double) nécessite de passer un type double pour retourner le type long le plus proche de ce type double.
Calendar est une classe d'outils qui traite le temps. Comme la date, le mois du calendrier est également calculé à partir de 0.
Le code spécifique est le suivant
String statique publique RandomDateBetweenminandMax () {Calendar Calendar = Calendar.getInstance (); // Notez que le mois doit être soustrait par 1 calendrier.Set (1990,11,31); calendar.gettime (). getTime (); // Selon les exigences, l'heure, la minute et la seconde doivent être définies sur 0 Calendar.Set (calendar.hour_of_day, 0); 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 (); // obtient la double valeur supérieure ou égale à min inférieure à max double aléatoire = math.random () * (max-min) + min; // autour de la double valeur dans un entier et le convertir en type long Calendar.SetTimeInmillis (Math.round (RandomDate)); return Calendar.getTime (). ToString (); } Si vous souhaitez utiliser la classe Date pour traiter l'heure, vous devez noter que l'année commence à partir de 1900, vous devez donc soustraire 1900 et que le mois commence à partir de 0, vous devez donc soustraire 1. Par exemple, l'objet de date représenté par la nouvelle date (2013, 10, 10) est le 10 novembre 3913.
System.out.println (nouvelle date (2013,10,10));
Le résultat est: lun 10 novembre 00:00:00 CST 3913
Changez légèrement le problème ci-dessus. Connaître Mindat et Maxdate nécessite que chaque jour de cet intervalle de temps soit placé dans la liste.
public static void getDateBetweenMaxAndmin () {list <Date> list = new ArrayList <Date> (); Calendar Calendar = calendar.getInstance (); Calendar.Set (2010,10,10); DATE MINDATE = CALENDAR.GetTime (); // Minimum Time Calendar.Set (2013,11,1); Date maxdate = calendar.getTime (); // maximum temps // Calculez combien de jours d'intervalle entre deux points temporels int totals = int.CheckEdCast ((maxdate.getTime ()) - MinDate.getTime ()) / (1000 * 60 * 60 * 24)); Calendar.SetTime (MinDate); calendar.set (calendar.hour_of_day, 0); calendar.set (calendar.minute, 0); calendar.set (calendar.second, 0); for (int i = 0; i <= totaldays; i ++) {if (i! = 0) {// ajouter 1 calendar.add (calendar.day_of_month, 1); } list.add (calendar.getTime ()); }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.