هناك شرط: إنشاء طريقة وتوليد أي نقطة زمنية بشكل عشوائي بين 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 (مزدوج) تمرير نوع مزدوج لإرجاع النوع الطويل الأقرب إلى هذا النوع المزدوج.
التقويم هو فئة الأدوات التي تعالج الوقت. مثل التاريخ ، يتم حساب شهر التقويم من 0.
الرمز المحدد كما يلي
السلسلة الثابتة العامة randomdatebetweenMinandMax () {Calendar Calendar = Calendar.getInstance () ؛ // لاحظ أن الشهر يجب طرحه بواسطة 1 Calendar.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 () ؛ // احصل على القيمة المزدوجة أكبر من أو تساوي دقيقة أقل من الحد الأقصى doubledate = math.random ()*(max-min)+min ؛ // حول القيمة المزدوجة إلى عدد صحيح وتحويلها إلى تقويم طويل من النوع إرجاع calendar.getTime (). tostring () ؛ } إذا كنت ترغب في استخدام فئة التاريخ لمعالجة الوقت ، فأنت بحاجة إلى ملاحظة أن السنة تبدأ من عام 1900 ، لذلك تحتاج إلى طرح 1900 ، ويبدأ الشهر من 0 ، لذلك تحتاج إلى طرح 1. على سبيل المثال ، كائن التاريخ الذي يمثله التاريخ الجديد (2013 ، 10 ، 10) هو 10 نوفمبر 3913.
System.out.println (تاريخ جديد (2013،10،10)) ؛
والنتيجة هي: الاثنين 10 نوفمبر 00:00:00 CST 3913
تغيير المشكلة أعلاه قليلا. تتطلب معرفة Mindate و MaxDate وضع كل يوم من هذا الفاصل الزمني في القائمة.
public static void getDateBetweenMaxAndMin () {list <date> list = new ArrayList <Date> () ؛ التقويم التقويم = calendar.getInstance () ؛ Calendar.set (2010،10،10) ؛ Date Mindate = calendar.getTime () ؛ // الحد الأدنى للوقت التقويم (2013،11،1) ؛ Date MaxDate = Calendar.getTime () ؛ // الحد الأقصى للوقت // احسب عدد الأيام التي يتمتع فيها نقطتين زمنيتين int totaldays = ints.checkedcast ((maxDate.getTime ()) - mindate.getTime ())/(1000 * 60 * 24)) ؛ Calendar.Settime (Mindate) ؛ Calendar.set (Calendar.hour_of_day ، 0) ؛ Calendar.set (Calendar.minute ، 0) ؛ Calendar.set (Calendar.Second ، 0) ؛ لـ (int i = 0 ؛ i <= totalDays ؛ i ++) {if (i! = 0) {// إضافة 1 calendar.add (calendar.day_of_month ، 1) ؛ } list.add (calendar.getTime ()) ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.