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
    }
}

You may also like...

24,252 Responses

  1. Brandonnot表示:

    mexico pharmacies prescription drugs: Mexican Easy Pharm – Mexican Easy Pharm

  2. вывод из запоя в стационаре воронежа vyvod-iz-zapoya-v-stacionare-voronezh24.ru .

  3. вывод из запоя круглосуточно нижний новгород вывод из запоя круглосуточно нижний новгород .

  4. Chart began 2010-07-17 and runs within the summer season, from Memorial Day through Labor Day.

  5. выведение из запоя в стационаре [url=http://vyvod-iz-zapoya-v-stacionare21.ru]выведение из запоя в стационаре[/url] .

  6. вывод из запоя стационар [url=vyvod-iz-zapoya-v-stacionare-voronezh24.ru]вывод из запоя стационар[/url] .

  7. ClaytonrOf表示:

    FTP Software Lab is a premier informational resource dedicated to the FTP protocol, its ftp commands, ftp clients, ftp related technologies, and current news. We provide a comprehensive guide to understanding and utilizing FTP for secure and dependable file transfers, exploring the various aspects of this essential protocol. FTP lab features detailed insights into a range of FTP client software options, helping you choose the best tools to manage your ftp file transfers efficiently, from effortlessly ftp uploading data to reliably ftp downloading files from ftp servers. Discover the capabilities of intuitive ftp features such as drag-and-drop functionality, and how robust directory ftp synchronization ensures that your local and remote files are consistent. We delve into the technical aspects, explaining secure transfer protocols like SFTP and FTPS, which provide crucial data protection during ftp transmission. Stay up-to-date with the latest innovations in FTP technologies and gain a deeper understanding of this essential ftp protocol through our constantly updated content. We are also committed to keeping you informed about the most relevant news and trends impacting the FTP landscape.

    https://ftplab.com/ – pgp ftp

  8. WilliamDen表示:

    Форум предназначен для обсуждения вопросов, связанных с видеонаблюдением и безопасностью. Участники могут делиться информацией и опытом в области программного обеспечения для видеонаблюдения на ПК, совместимого с IP-камерами. Рассматриваются комплексные решения, VMS, CMS, а также технологии AHD и IP. Обсуждаются вопросы настройки, восстановления паролей камер, и применения ИИ-видеоаналитики. Отдельное внимание уделено применению интегрированной видеоаналитики на основе искусственного интеллекта, включая обнаружение объектов, распознавание автомобильных номеров и лиц, а также выявление признаков дыма и огня. Форум является площадкой для обмена знаниями и обсуждения актуальных тем в области видеонаблюдения. Здесь пользователи могут делиться своим опытом, задавать вопросы и находить решения для своих задач. Форум служит платформой для обмена знаниями и поиска решений в сфере видеонаблюдения.
    https://securityvideo.ru/ – бесплатные программы для ip камер

  9. But in most cases, bail means money.

  10. CurtisBam表示:

    canada pharmacy: canadian pharmacy 1 internet online drugstore – reliable canadian pharmacy

  11. Brandonnot表示:

    п»їbest mexican online pharmacies: Mexican Easy Pharm – Mexican Easy Pharm

  12. Stained Glass: Artwork or Anti-Artwork, The Verey Gallery and Eton School, Eton.

  13. Brandonnot表示:

    canadian pharmacy tampa: best canadian pharmacy to order from – canadian pharmacy oxycodone

  14. MichaelJup表示:

    FTP Software Lab is a premier informational resource dedicated to the FTP protocol, its ftp commands, ftp clients, ftp related technologies, and current news. We provide a comprehensive guide to understanding and utilizing FTP for secure and dependable file transfers, exploring the various aspects of this essential protocol. FTP lab features detailed insights into a range of FTP client software options, helping you choose the best tools to manage your ftp file transfers efficiently, from effortlessly ftp uploading data to reliably ftp downloading files from ftp servers. Discover the capabilities of intuitive ftp features such as drag-and-drop functionality, and how robust directory ftp synchronization ensures that your local and remote files are consistent. We delve into the technical aspects, explaining secure transfer protocols like SFTP and FTPS, which provide crucial data protection during ftp transmission. Stay up-to-date with the latest innovations in FTP technologies and gain a deeper understanding of this essential ftp protocol through our constantly updated content. We are also committed to keeping you informed about the most relevant news and trends impacting the FTP landscape.

    https://ftplab.com/ – ftp software archive

  15. ScottDeall表示:

    Форум предназначен для обсуждения вопросов, связанных с видеонаблюдением и безопасностью. Участники могут делиться информацией и опытом в области программного обеспечения для видеонаблюдения на ПК, совместимого с IP-камерами. Рассматриваются комплексные решения, VMS, CMS, а также технологии AHD и IP. Обсуждаются вопросы настройки, восстановления паролей камер, и применения ИИ-видеоаналитики. Отдельное внимание уделено применению интегрированной видеоаналитики на основе искусственного интеллекта, включая обнаружение объектов, распознавание автомобильных номеров и лиц, а также выявление признаков дыма и огня. Форум является площадкой для обмена знаниями и обсуждения актуальных тем в области видеонаблюдения. Здесь пользователи могут делиться своим опытом, задавать вопросы и находить решения для своих задач. Форум служит платформой для обмена знаниями и поиска решений в сфере видеонаблюдения.
    https://securityvideo.ru/ – cms программа для видеонаблюдения

  16. вывод из запоя в стационаре нижнего новгорода http://www.vyvod-iz-zapoya-v-stacionare21.ru/ .

  17. If a company decides to purchase an option, it is able to set a rate that is “at-worst” for the transaction.

  18. Carrolleruck表示:

    https://indiancertpharm.shop/# Indian pharmacy international shipping
    canada ed drugs

  19. CurtisBam表示:

    IndianCertPharm: Best online Indian pharmacy – Indian pharmacy that ships to usa

  20. The goalkeeper was restored to the beginning line-up in opposition to the Silkmen and made a string of tremendous saves within the match, only to be overwhelmed by two objectives of an virtually an identical nature from routine corners.

  21. Believing victory would take only a few months – and despite owning several books about Napoleon – the Nazi leader sent his troops into battle ill prepared for the impending winter.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。