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,201 Responses

  1. RodneyRip表示:

    mexican online pharmacies prescription drugs https://mexicaneasypharm.com/# Mexican Easy Pharm
    buying prescription drugs in mexico online

  2. Regardless, learning is the key, since one can get or lose for his/her examination of business region progressions of the purposes of premium.

  3. RodneyRip表示:

    mexican mail order pharmacies https://mexicaneasypharm.shop/# Mexican Easy Pharm
    mexican pharmaceuticals online

  4. Typically a critic’s review could make or break a new restaurant.

  5. Brandonnot表示:

    buying prescription drugs in mexico online: mexican pharmaceuticals online – п»їbest mexican online pharmacies

  6. Do you recall the correct model?

  7. As quickly as someone else begins to speak, the view will switch and that person will take the main focus.

  8. RodneyRip表示:

    mexican drugstore online https://mexicaneasypharm.com/# mexican drugstore online
    mexico pharmacies prescription drugs

  9. This ensures a wealthy agricultural commodity exchange.

  10. CurtisBam表示:

    online canadian pharmacy: CanadianMdPharm – legit canadian pharmacy online

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

  12. выведение из запоя в нижнем новгороде выведение из запоя в нижнем новгороде .

  13. Breish supported the establishment of a Presidency Council (PC) and Government of National Accord (GNA) in April 2016 and welcomed the PC and GNA, stating that “The LIA reaffirms its readiness to fully cooperate with the Government of National Accord in providing all relevant data, reports and support”.

  14. VSM表示:

    Along with having one of the best on screen fights of the year with Johnson,Vin Diesel gives a fantastic,real return-to-form performance as Dominic.

  15. The first American Bible Institute was opened in Brazil in 1970, and WOL now has Institutes in fourteen nations.

  16. RodneyRip表示:

    best online pharmacies in mexico https://mexicaneasypharm.com/# mexican drugstore online
    mexican mail order pharmacies

  17. By using open-ended questions, interviewers encourage witnesses to provide as much information as possible without leading them or suggesting answers.

  18. выведение из запоя в нижнем новгороде выведение из запоя в нижнем новгороде .

  19. Brandonnot表示:

    canadian pharmacies that deliver to the us: Canadian Md Pharm – reddit canadian pharmacy

  20. Petervop表示:

    Understanding the Aave Protocol
    The Aave Protocol is revolutionizing the decentralized finance (DeFi) space with its unique approach to crypto lending and borrowing. Whether you’re a seasoned investor or new to the world of cryptocurrencies, Aave offers a robust platform for managing your digital assets.
    [url=https://www-aave.com]aave lending[/url]
    What is Aave?
    Aave, which means ‘ghost’ in Finnish, is a non-custodial liquidity protocol. It allows users to earn interest on deposits and borrow assets. Aave is known for its wide range of supported cryptocurrencies and features that enhance the security and flexibility of crypto transactions.

    Key Features of Aave Protocol
    Flash Loans: Aave introduced the concept of flash loans, which are borrowed and repaid within a single transaction. This feature is useful for arbitrage opportunities and collateral swaps.
    Security: Aave is audited by leading blockchain security firms, ensuring the safety of user funds.
    Rate Switching: Users can switch between stable and variable interest rates, offering flexibility based on market conditions.
    Wide Asset Support: Aave supports multiple cryptocurrencies including Ethereum (ETH), DAI, and more.
    How to Get Started with Aave
    Getting started with Aave is straightforward:

    Set Up a Wallet: Use a compatible crypto wallet like MetaMask.
    Connect to Aave: Visit the Aave website and connect your wallet.
    Deposit Crypto: Choose from supported cryptocurrencies to deposit into the Aave Protocol.
    Start Earning or Borrowing: Once your crypto is deposited, you can start earning interest or borrowing assets instantly.
    Advantages of Using Aave
    There are several reasons why Aave stands out in the world of DeFi:

    Non-Custodial: Users maintain control over their funds.
    Highly Secure: Regular audits and community governance enhance security.
    Innovative Products: Pioneering features like flash loans provide unparalleled opportunities.
    In conclusion, the Aave Protocol offers a revolutionary platform for anyone looking to explore the potential of decentralized finance. Whether you’re earning interest or borrowing assets, Aave provides a secure and flexible experience.

  21. Early stage, late stage and private fairness investments.

發佈留言

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