Существует требование: построить метод и случайным образом генерируйте любой момент времени между 1990-12-31 00:00 00 и 2013-12-31 00:00:00.
Идея заключается в следующем: в Java API тип даты и длинный тип очень легко преобразовать, поэтому мы можем преобразовать проблему в поиск какого -либо значения между двумя числами длинного типа.
В то же время вы должны понять: Math.Round (Double) Math.random (); новая дата (год, месяц, день); Календарь в Java API.
Math.Random () будет случайным образом генерировать случайные двойные типы, превышающие или равные 0 или менее 1.
Math.Round (Double) требует прохождения двойного типа, чтобы вернуть длинный тип, ближайший к этому двойному типу.
Календарь - это класс инструментов, который обрабатывает время. Как и дата, месяц календаря также рассчитывается от 0.
Конкретный код выглядит следующим образом
public Static String randomDateWeeWneminandMax () {календарный календарь = календарь.getinstance (); // Обратите внимание, что месяц должен быть вычтен с помощью 1 календаря. Set (1990,11,31); Calendar.getTime (). getTime (); // Согласно требованиям, время, минута и второе должно быть установлено в 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 (); // Получить двойное значение больше или равное мин меньше, чем максимум Double RandomDate = math.random ()*(максимум)+мин; // округление двойного значения в целое число и преобразовать его в календарь длинного типа. SettimeInmillis (math.round (randomDate)); return Calendar.getTime (). ToString (); } Если вы хотите использовать класс Date для обработки времени, вам нужно отметить, что год начинается с 1900 года, поэтому вам необходимо вычесть 1900, а месяц начинается с 0, поэтому вам необходимо вычесть 1.
System.out.println (Новая дата (2013,10,10));
Результат: понедельник 10 ноября 00:00:00 CST 3913
Слегка измените вышеупомянутую проблему. Знание Mindate и MaxDate требует, чтобы каждый день этого временного интервала был помещен в список.
public static void getDateweeWnemaxAndmin () {list <Date> list = new ArrayList <Date> (); Календарь календарь = календарь.getinstance (); Calendar.Set (2010,10,10); Дата mindate = calendar.gettime (); // Минимальный календарь времени. Set (2013,11,1); Date MaxDate = Calendar.GetTime (); // Максимальное время // Рассчитайте, сколько дней между двумя временными точками int TotalDays = ints.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) {// Добавить 1 Calendar.Add (calendar.day_of_month, 1); } list.add (calendar.gettime ()); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.