Existe un requisito: construir un método y generar aleatoriamente cualquier punto de tiempo entre 1990-12-31 00:00 00 y 2013-12-31 00:00:00.
La idea es la siguiente: en la API Java, el tipo de fecha y el tipo largo son muy fáciles de convertir, por lo que podemos convertir el problema en encontrar cualquier valor entre dos números de tipo largo.
Al mismo tiempo, debe entender: Math.round (doble) Math.random (); nueva fecha (año, mes, día); Calendario en la API Java.
Math.random () generará aleatoriamente tipos dobles aleatorios mayores o igual a 0 o menos de 1.
Math.round (doble) requiere pasar un tipo doble para devolver el tipo largo más cercano a este tipo doble.
El calendario es una clase de herramientas que procesa el tiempo. Al igual que la fecha, el mes del calendario también se calcula a partir de 0.
El código específico es el siguiente
public static string randomDateBetweenminandmax () {calendar calendar = calendar.getInstance (); // Tenga en cuenta que el mes debe ser restado por 1 calendario. calendar.gettime (). gettime (); // Según los requisitos, el tiempo, el minuto y el segundo deben establecerse en 0 calendar.set (calendar.hour_of_day, 0); calendario.set (calendario.minute, 0); calendar.set (calendario.segundo, 0); largo min = calendario.gettime (). gettime () ;; Calendar.set (2013,11,31); calendar.set (calendar.hour_of_day, 0); calendario.set (calendario.minute, 0); calendar.set (calendario.segundo, 0); calendar.gettime (). gettime (); long max = calendar.gettime (). gettime (); // Obtenga el valor doble mayor o igual a min menor que máximo doble randomdate = math.random ()*(max-min)+min; // redondea el valor doble en un entero y conviértelo en calendario de tipo largo. return calendar.gettime (). toString (); } Si desea utilizar la clase de fecha para procesar la hora, debe tener en cuenta que el año comienza desde 1900, por lo que debe restar 1900, y el mes comienza desde 0, por lo que debe restarse 1. Por ejemplo, el objeto de fecha representado por la nueva fecha (2013, 10, 10) es el 10 de noviembre de 3913.
System.out.println (nueva fecha (2013,10,10));
El resultado es: lunes 10 de noviembre 00:00:00 CST 3913
Cambie ligeramente el problema anterior. Conocer Mindate y MaxDate requiere que cada día de este intervalo de tiempo se coloque en la lista.
public static void getdateBetweenmaxandmin () {list <date> list = new ArrayList <date> (); Calendario calendario = calendario.getInstance (); Calendar.set (2010,10,10); Date mindate = calendar.gettime (); // calendario de tiempo mínimo (2013,11,1); Fecha maxdate = calendar.gettime (); // tiempo máximo // Calcule cuántos días separados entre dos puntos de tiempo int totaldays = ints.checkedcast ((maxDate.gettime ()) - Mindate.getTime ())/(1000 * 60 * 60 * 24)); calendario. calendar.set (calendar.hour_of_day, 0); calendario.set (calendario.minute, 0); calendar.set (calendario.segundo, 0); for (int i = 0; i <= Totaldays; i ++) {if (i! = 0) {// Agregar 1 calendario.add (calendar.day_of_month, 1); } list.add (calendar.gettime ()); }}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.