มีข้อกำหนด: สร้างวิธีการและสร้างจุดเวลาใด ๆ ระหว่างปี 1990-12-31 00:00 00 และ 2013-12-31 00:00:00
ความคิดมีดังนี้: ใน Java API ประเภทวันที่และประเภทยาวนั้นง่ายต่อการแปลงดังนั้นเราจึงสามารถแปลงปัญหาเป็นการค้นหาค่าใด ๆ ระหว่างหมายเลขประเภทยาวสองตัว
ในเวลาเดียวกันคุณต้องเข้าใจ: Math.round (สอง) Math.random (); วันใหม่ (ปี, เดือน, วัน); ปฏิทินใน Java API
math.random () จะสร้างแบบสุ่มสองประเภทมากกว่าหรือเท่ากับ 0 หรือน้อยกว่า 1
Math.Round (สองเท่า) ต้องผ่านเป็นสองเท่าเพื่อส่งคืนประเภทยาวที่ใกล้เคียงกับประเภทสองเท่านี้มากที่สุด
ปฏิทินเป็นคลาสเครื่องมือที่ประมวลผลเวลา เช่นวันที่เดือนปฏิทินจะคำนวณจาก 0
รหัสเฉพาะมีดังนี้
String String สาธารณะแบบสุ่ม BetweenMinandMax () {ปฏิทินปฏิทิน = Calendar.getInstance (); // โปรดทราบว่าเดือนจะต้องถูกลบโดย 1 ปฏิทิน Set (1990,11,31); Calendar.getTime (). getTime (); // ตามข้อกำหนดเวลานาทีและวินาทีควรตั้งค่าเป็น 0 ปฏิทินเซ็ต (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 (); // รับค่าสองเท่ามากกว่าหรือเท่ากับนาทีน้อยกว่า max double randomdate = math.random ()*(max-min)+min; // ปัดเศษค่าสองเท่าเป็นจำนวนเต็มและแปลงเป็นปฏิทินประเภทยาว SettimeInmillis (Math.Round (RandomDate)); ส่งคืนปฏิทิน 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 ต้องการให้มีการวางช่วงเวลาในรายการในแต่ละวัน
โมฆะคงที่สาธารณะ getDateBetweenMaxandMin () {รายการ <วันที่> list = new ArrayList <วันที่> (); ปฏิทินปฏิทิน = ปฏิทิน GetInstance (); Calendar.set (2010,10,10); Date Mindate = Calendar.getTime (); // ปฏิทินเวลาขั้นต่ำ Set (2013,11,1); วันที่ maxdate = calendar.getTime (); // เวลาสูงสุด // คำนวณจำนวนวันที่ห่างกันระหว่างสองจุดเวลา int totalDays = ints.CheckedCast ((maxdate.getTime ()) - Mindate.getTime ())/(1,000 * 60 * 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 ++) {ถ้า (i! = 0) {// เพิ่ม 1 calendar.add (calendar.day_of_month, 1); } list.add (calendar.getTime ()); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น