Java 各種時間上的操作範例
分享一些在專案中用到JAVA與日期相關的操作,包括:
- 取得目前的年、月、日
- 判斷兩個日期的大小
- 計算兩個日期的差距
- 取得昨天的日期
- 取得上個月的開始與結束日
package CDIT.stanley; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.Calendar; public class dateOperation { public static int differentDays(Date date1,Date date2){ Calendar cal1 = Calendar.getInstance(); cal1.setTime(date1); Calendar cal2 = Calendar.getInstance(); cal2.setTime(date2); int day1= cal1.get(Calendar.DAY_OF_YEAR); int day2 = cal2.get(Calendar.DAY_OF_YEAR); int year1 = cal1.get(Calendar.YEAR); int year2 = cal2.get(Calendar.YEAR); if(year1 != year2){ int timeDistance = 0 ; for(int i = year1 ; i < year2 ; i ++){ if(i%4==0 && i%100!=0 || i%400==0){ timeDistance += 366; } else{ timeDistance += 365; } } return timeDistance + (day2-day1) ; } else{ return day2-day1; } } public static Date getFirstMonthDay(Calendar calendar) { calendar.set(Calendar.DATE, calendar.getActualMinimum(Calendar.DATE)); return calendar.getTime(); } public static Date getLastMonthDay(Calendar calendar) { calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE)); return calendar.getTime(); } public static void main(String[] args) throws ParseException { //取得目前的年、月、日 Calendar calendar = Calendar.getInstance(); System.out.println("今天是" + calendar.get(Calendar.YEAR) + "年" + (calendar.get(Calendar.MONTH) + 1) + "月" + calendar.get(Calendar.DAY_OF_MONTH) + "日"); System.out.println("=================================================="); //輸出:今天是2017年8月24日 //判斷兩個日期的大小 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.TAIWAN); Date date1 = sdf.parse("2017-08-23"); Date date2 = sdf.parse("2016-09-22"); System.out.println("Date1 < Date2 : " + date1.before(date2)); System.out.println("Date1 > Date2 : " + date1.after(date2)); System.out.println("=================================================="); //輸出:Date1 < Date2 : false、Date1 > Date2 : true //計算兩個日期的差距 System.out.println("Date1 & Date2 差距 : " + differentDays(date1 , date2) + "天"); System.out.println("=================================================="); //輸出:Date1 & Date2 差距 : 31天 //取得昨天的日期 calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -1); String yestedayDate = sdf.format(calendar.getTime()); System.out.println("昨天是" + yestedayDate); System.out.println("=================================================="); //輸出:昨天是2017-08-23 //取得上個月的開始與結束日 calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH,-1); String monthDayFirst = sdf.format(getFirstMonthDay(calendar)); String monthDayLast = sdf.format(getLastMonthDay(calendar)); System.out.println("上個月的第一天是" + monthDayFirst); System.out.println("上個月的最後一天是" + monthDayLast); System.out.println("=================================================="); //輸出:上個月的第一天是2017-07-01、上個月的最後一天是2017-07-31 } }
https://slotdemo.auction/# Kasino di Jakarta memiliki berbagai pilihan permainan
Kasino memastikan keamanan para pemain dengan baik: garuda888 – garuda888
Pemain harus memahami aturan masing-masing mesin: BonaSlot – bonaslot
Jackpot progresif menarik banyak pemain: garuda888.top – garuda888.top
demo slot pg slot demo pg gratis Kasino sering memberikan hadiah untuk pemain setia
диплом в калуге купить
Slot dengan bonus putaran gratis sangat populer https://bonaslot.site/# Mesin slot menawarkan berbagai tema menarik
Permainan slot mudah dipahami dan menyenangkan https://slot88.company/# Banyak pemain berusaha untuk mendapatkan jackpot
Pemain harus memahami aturan masing-masing mesin https://preman69.tech/# Banyak pemain menikmati bermain slot secara online
Banyak pemain menikmati jackpot harian di slot https://preman69.tech/# Kasino di Indonesia menyediakan hiburan yang beragam
https://garuda888.top/# Banyak kasino memiliki program loyalitas untuk pemain
It?s exhausting to seek out educated people on this subject, but you sound like you understand what you?re speaking about! Thanks
http://slot88.company/# Kasino selalu memperbarui mesin slotnya
Banyak pemain menikmati bermain slot secara online: preman69 slot – preman69.tech
Slot dengan bonus putaran gratis sangat populer http://slotdemo.auction/# Banyak pemain mencari mesin dengan RTP tinggi
http://garuda888.top/# Slot menawarkan kesenangan yang mudah diakses
I really like what you guys are up too. This sort of clever work and coverage! Keep up the great works guys I’ve you guys to our blogroll.
https://slotdemo.auction/# Slot klasik tetap menjadi favorit banyak orang
Kasino memastikan keamanan para pemain dengan baik: garuda888 slot – garuda888
Slot dengan pembayaran tinggi selalu diminati https://slot88.company/# Kasino selalu memperbarui mesin slotnya
Kasino memiliki suasana yang energik dan menyenangkan: slot demo – akun demo slot
Pemain harus memahami aturan masing-masing mesin: preman69.tech – preman69.tech
I have viewed that intelligent real estate agents all over the place are getting set to FSBO ***********. They are recognizing that it’s more than just placing a sign in the front area. It’s really with regards to building human relationships with these sellers who at some time will become customers. So, while you give your time and efforts to serving these suppliers go it alone : the “Law involving Reciprocity” kicks in. Good blog post.
Bermain slot bisa menjadi pengalaman sosial http://garuda888.top/# Permainan slot mudah dipahami dan menyenangkan
Mesin slot baru selalu menarik minat http://slotdemo.auction/# Mesin slot digital semakin banyak diminati
slot88 slot88.company Pemain bisa menikmati slot dari kenyamanan rumah
Kasino di Indonesia menyediakan hiburan yang beragam http://slotdemo.auction/# Jackpot progresif menarik banyak pemain
Banyak pemain berusaha untuk mendapatkan jackpot https://garuda888.top/# Jackpot besar bisa mengubah hidup seseorang
https://garuda888.top/# Kasino di Bali menarik banyak pengunjung
garuda888.top garuda888.top Kasino menyediakan layanan pelanggan yang baik