รหัสการใช้งานหนึ่ง:
นำเข้า java.text.simpledateFormat; นำเข้า java.util.calendar; นำเข้า java.util.date; ชั้นเรียนสาธารณะ datetestutil {โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {SimpledateFormat SDF = ใหม่ string str = "20110823"; วันที่ dt = sdf.parse (str); ปฏิทิน rightnow = calendar.getInstance (); Rightnow.settime (DT); rightnow.add (Calendar.year, -1); // วันที่ลบ 1 ปี rightnow.add (Calendar.month, 3); // วันที่บวก 3 เดือน rightnow.add (Calendar.day_of_year, 10); // วันที่ 10 วัน string rest = sdf.format (dt1); System.out.println (rest); -หมายเหตุ: ในวิธีการเพิ่มของวัตถุปฏิทินพารามิเตอร์ที่สองคือจำนวนบวกที่หมายถึง "เพิ่ม" และจำนวนลบซึ่งหมายถึง "การลบ"
รหัส 2: วันที่ Java เพิ่มและลบจำนวนวัน
รหัสชั้นเรียนทดสอบ:
นำเข้า java.text.simpledateFormat; นำเข้า java.util.date; ชั้นเรียนสาธารณะ datetest {โมฆะคงที่สาธารณะหลัก (สตริง [] arg) {วันที่ตอนนี้ = วันที่ใหม่ (); addandsubtractdaysbygettime (ตอนนี้, -5); addandsubtractdaysbygettime (ตอนนี้, 5); addandsubtractdaysbycalendar (ตอนนี้, -5); addandsubtractdaysbycalendar (ตอนนี้, 5); } วันที่สาธารณะคงที่ addandsubtractdaysbygetTime (วันที่ dateTime/*วันที่รอดำเนินการ*/, int n/*การเพิ่มและการลบวัน*/) {// วันที่รูปแบบ simpledateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); SimpledateFormat dd = new SimpledateFormat ("YYYY-MM-DD HH: MM: SS"); System.out.println (df.format (วันที่ใหม่ (dateTime.getTime () + n * 24 * 60 * 60 * 1000L))); //system.out.println(dd.format( วันที่ใหม่ (dateTime.getTime () + n * 24 * 60 * 60 * 1000L))); // โปรดทราบว่าคุณต้องแปลงเป็นประเภทยาวที่นี่มิฉะนั้นช่วงล้นจะเกิดขึ้นเมื่อ n เกิน 25 เพื่อให้คุณไม่สามารถรับค่าวันที่ที่ต้องการส่งคืนวันที่ใหม่ (dateTime.getTime () + n * 24 * 60 * 60 * 1000L); } วันที่สาธารณะคงที่ addandsubtractdaysbycalendar (วันที่ DateTime/*วันที่รอดำเนินการ*/, int n/*วันเพิ่มเติมและการลบวัน*/) {// รูปแบบวันที่ simpledateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); SimpledateFormat dd = new SimpledateFormat ("YYYY-MM-DD HH: MM: SS"); java.util.calendar Calstart = java.util.calendar.getInstance (); Calstart.Settime (DateTime); calstart.add (java.util.calendar.day_of_week, n); System.out.println (df.format (calstart.getTime ())); //system.out.println (dd.format (calstart.getTime ())); return calstart.getTime (); - ผลการทำงาน:
2014-10-06
2014-10-16
2014-10-06
2014-10-16
รหัสที่สาม:
ตรวจสอบข้อมูลออนไลน์และเพิ่มคลาสเครื่องมือเกี่ยวกับคลาสวันที่ที่คุณได้สรุป
แพ็คเกจ com.data.utils; นำเข้า java.text.simpledateFormat; นำเข้า java.util.calendar; นำเข้า java.util.date; ชั้นเรียนสาธารณะ dateformat { / *** วันที่ลดลง* ใหม่ วันที่ dt = sdf.parse (str); ปฏิทิน rightnow = calendar.getInstance (); Rightnow.settime (DT); rightnow.add (Calendar.year, -1); // วันที่ลบ 1 ปีวันที่ dt1 = rightnow.gettime (); string rest = sdf.format (dt1); RETURN RECT; } / *** มีกี่ปีในการเพิ่มวันที่* / สตริงคงที่สาธารณะ dateAddyear (String str) พ่นข้อยกเว้น {SimpledateFormat SDF = New SimpledateFormat ("yyyymm"); วันที่ dt = sdf.parse (str); ปฏิทิน rightnow = calendar.getInstance (); Rightnow.settime (DT); rightnow.add (Calendar.year, 1); // วันที่บวก 1 ปีวันที่ dt1 = rightnow.gettime (); string rest = sdf.format (dt1); RETURN RECT; } / *** วันที่ลดลง* / สตริงคงที่สาธารณะ dateminusmonth (String str) ได้กี่เดือน วันที่ dt = sdf.parse (str); // สร้างปฏิทินสตริง rightnow = calendar.getInstance (); rightnow.settime (dt); // กำหนดเวลาของปฏิทินนี้โดยใช้วันที่ที่กำหนด Rightnow.add (Calendar.month, -1); // วันที่ลบ 1 เดือนวันที่ dt1 = rightnow.getTime (); // ส่งคืนวัตถุวันที่แทนค่าเวลาปฏิทิน String rest = sdf.format (dt1); // จัดรูปแบบวันที่ที่กำหนดเป็นสตริงวันที่/เวลาและเพิ่มผลลัพธ์ลงในสตริงที่กำหนด RETURN RECT; } / ** * วันที่เพิ่ม * / สตริงคงที่สาธารณะ dateAddMonth (String str) มีกี่เดือน วันที่ dt = sdf.parse (str); ปฏิทิน rightnow = calendar.getInstance (); Rightnow.settime (DT); Rightnow.add (Calendar.month, 1); // เพิ่ม 3 เดือนถึงวันที่ // rightnow.add (calendar.day_of_year, 10); // วันที่บวก 10 วันวันที่ dt1 = rightnow.gettime (); string rest = sdf.format (dt1); RETURN RECT; } / ** * รับ str สำหรับเดือนแรกของปีและเดือนปัจจุบัน * @param str * 201505 * @return 201501 * @throws Exception * / String String สาธารณะ DateOnemonth (String str) {str = str.substring (0, str.length () - 2); str = str + "01"; return str; } /*** คำนวณจำนวนเดือนที่เลือกมากี่เดือนตั้งแต่เดือนมกราคม * @param str 201509 * @return 9 */ สาธารณะคงที่ int datedistancemonth (String str) {int i = integer.parseint (str); int j = integer.parseint (dateformat.dateonmonth (str)); System.out.println (I - J); return i - j + 1; } / ** * รับความแตกต่างของเวลาระหว่างสองครั้งแม่นยำถึงมิลลิวินาที * @param str * @return * / สตริงคงที่ public String timedifference (เริ่มต้นยาว, ปลายยาว) {ยาวระหว่าง = สิ้นสุด - เริ่ม; Long Day = ระหว่าง / (24 * 60 * 60 * 1000); ชั่วโมงยาว = (ระหว่าง / (60 * 60 * 1000) - วัน * 24); Long min = ((ระหว่าง / (60 * 1000)) - วัน * 24 * 60 - ชั่วโมง * 60); Long S = (ระหว่าง / 1000 - วัน * 24 * 60 * 60 - ชั่วโมง * 60 - นาที * 60); Long ms = (ระหว่าง - วัน * 24 * 60 * 60 * 1,000 - ชั่วโมง * 60 * 60 * 60 * 1000 - นาที * 60 * 1000 - S * 1000); String timeDifference = วัน + "วัน" + ชั่วโมง + "ชั่วโมง" + นาที + "นาที" + s + "วินาที" + ms + "มิลลิวินาที"; ส่งคืน timeDifference; }} / ** * รับเวลาเริ่มต้น 24 ชั่วโมงหนึ่งสัปดาห์และหนึ่งเดือน * * @param timeinterval *: day_time_interval Week_time_interval month_time_interval * @return "yyyy-mm-dd hh: mm: ss" SimpledateFormat SDF = New SimpledateFormat ("YYYY-MM-DD HH: MM: SS"); if (day_time_interval == timeinterval) {// รับเวลาเริ่มต้น 24 ชั่วโมง cal.set (calendar.hour_of_day, 0); Cal.Set (Calendar.Minute, 0); Cal.Set (Calendar.second, 0); String startTime = sdf.format (cal.getTime ()); คืนเวลาเริ่มต้น; } อื่นถ้า (week_time_interval == timeinterval) {int วันธรรมดา = cal.get (calendar.day_of_week) - 1; Cal.Add (Calendar.date, -weekday); Cal.Set (Calendar.hour_of_day, 0); Cal.Set (Calendar.Minute, 0); Cal.Set (Calendar.second, 0); String startTime = sdf.format (cal.getTime ()); คืนเวลาเริ่มต้น; } อื่นถ้า (month_time_interval == timeLinterval) {int dayofmonthmin = cal.getactualminimum (calendar.day_of_month); // c.add (calendar.date, -dayofmonth); Cal.Set (Calendar.date, dayofmonthmin); Cal.Set (Calendar.hour_of_day, 0); Cal.Set (Calendar.Minute, 0); Cal.Set (Calendar.second, 0); String startTime = sdf.format (cal.getTime ()); คืนเวลาเริ่มต้น; } return null; } / ** * รับเวลาสิ้นสุด 24 ชั่วโมงหนึ่งสัปดาห์และหนึ่งเดือน * * @param timeinterval *: day_time_interval Week_time_interval month_time_interval * @return "yyyy-mm-dd hh: mm: ss" Cal.Settimezone (Timezone.getTimeZone ("GMT+8")); SimpledateFormat SDF = New SimpledateFormat ("YYYY-MM-DD HH: MM: SS"); if (day_time_interval == timeinterval) {cal.set (calendar.hour_of_day, 23); Cal.Set (12, 59); Cal.Set (13, 59); วันที่ยาว = cal.gettimeinmillis (); string endtime = sdf.format (วันที่ใหม่ (วันที่)); กลับมาสิ้นสุด; } อื่นถ้า (week_time_interval == timeinterval) {int วันธรรมดา = cal.get (calendar.day_of_week) - 1; Cal.Add (Calendar.date, -weekday); Cal.Add (Calendar.date, 6); Cal.Set (Calendar.hour_of_day, 23); Cal.Set (12, 59); Cal.Set (13, 59); วันที่ยาว = cal.gettimeinmillis (); string endtime = sdf.format (วันที่ใหม่ (วันที่)); กลับมาสิ้นสุด; } อื่นถ้า (month_time_interval == timeLinterval) {int dayofmonthmax = cal.getactualmaximum (calendar.day_of_month); Cal.Set (Calendar.date, Dayofmonthmax); Cal.Set (Calendar.hour_of_day, 23); Cal.Set (Calendar.Minute, 59); Cal.Set (Calendar.second, 59); string endtime = sdf.format (cal.getTime ()); กลับมาสิ้นสุด; } return null; } /*** พิจารณาว่า Datest อยู่ระหว่างเริ่มต้นและสิ้นสุดหรือไม่ ทั้งการเริ่มต้นและสิ้นสุดสามารถเป็นโมฆะ yyyymmddhhmmss หรือ yyyymmdd รูปแบบ * * @author you.xu * @date 19 สิงหาคม 2015 เวลา 3:11:46 PM * @param datestr * @param start * @param end * @return วันที่วันที่ = null; วันที่เริ่มต้น = null; วันที่สิ้นสุด = null; SimpledateFormat SDF = NULL; // รูปแบบตัดสินวันที่ถ้า (14 == datestr.length ()) {sdf = new SimpledateFormat ("yyymmddhhmmss"); } อื่นถ้า (8 == datestr.length ()) {sdf = ใหม่ simpledateFormat ("yyyymmdd"); } return return false; ลอง {// เปลี่ยนรูปแบบวันที่ตัดสินวันที่ = sdf.parse (datestr); } catch (parseexception e) {log.error (e, e); } if ((start == null) && (end! = null)) {ลอง {enddate = sdf.parse (end); } catch (parseexception ex1) {log.error (ex1, ex1); } if ((วันที่! = null) && (enddate! = null)) // ตรวจสอบพารามิเตอร์สำหรับ {if (date.compareto (enddate) <= 0) isDateright = true; }} อื่นถ้า ((เริ่มต้น! = null) && (end == null)) {ลอง {startDate = sdf.parse (เริ่มต้น); } catch (parseexception ex1) {log.error (ex1, ex1); } if ((วันที่! = null) && (startDate! = null)) {ถ้า (date.Compareto (startDate)> = 0) isDateright = true; }} อื่นถ้า ((เริ่มต้น! = null) && (end! = null)) {ลอง {startDate = sdf.parse (เริ่มต้น); enddate = sdf.parse (สิ้นสุด); } catch (parseexception ex2) {system.out.println (ex2.toString ()); } if ((startDate! = null) && (วันที่! = null) && (enddate! = null)) {ถ้า ((date.Compareto (startDate)> = 0) && (date.compareto (enddate) <= 0)) isDateright = true; }} return iSdateright; } / ** * เพื่อตรวจสอบว่า Datest อยู่ระหว่างการเริ่มต้นและจุดสิ้นสุดทั้งการเริ่มต้นและจุดสิ้นสุดสามารถอยู่ในรูปแบบที่ยาวนาน * * @author you.xu * @date 19 สิงหาคม 2015 เวลา 3:12:35 PM * @param Datestr * @param start * @param end * @return วันที่ยาว = -1; ยาว fromdate = -1; todate ยาว = -1; วันที่ = java.lang.long.parselong (Datestr); if ((start == null) && (end == null)) {isDateright = true; } else if ((start == null) && (end! = null)) {ลอง {todate = java.lang.long.parselong (สิ้นสุด); } catch (numberFormatexception nfe) {log.error (nfe, nfe); } if (วันที่ <= todate) {isDateright = true; }} อื่นถ้า ((เริ่มต้น! = null) && (end == null)) {ลอง {fromdate = java.lang.long.parselong (เริ่มต้น); } catch (numberFormatexception nfe) {log.error (nfe, nfe); } if (วันที่> = fromdate) {isDateright = true; }} อื่นถ้า ((เริ่มต้น! = null) && (end! = null)) {ลอง {todate = java.lang.long.parselong (สิ้นสุด); fromdate = java.lang.long.parselong (เริ่มต้น); } catch (numberFormatexception nfe) {log.error (nfe, nfe); } if ((วันที่ <= todate) && (วันที่> = fromdate)) {isDateright = true; }} return iSdateright; -สิ่งเหล่านี้ถูกใช้ไปแล้วและคุณสามารถเพิ่มได้ตลอดเวลา มีเครื่องมือเวลาที่เรียบง่ายและสะดวกสบาย ฉันหวังว่าจะได้เรียนรู้กับคุณและฉันจะชี้ให้พวกเขาเห็นในความคิดเห็น ขอบคุณ! - -