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

  1. RileyBok表示:

    Viagra * Cialis * Levitra

    All the products you are looking seeking are currently at one’s disposal as far as something 1+1.

    4 more tablets of one of the following services: Viagra * Cialis * Levitra

    https://vkdnjaos.com

  2. Intuitively, this is evident during a financial crisis where all industry sectors experience a significant enhance in correlations, versus an upward trending market.

  3. The resolution is the entire variety of pixels contained in the display — extra pixels enable for extra content material to be displayed on display directly.

  4. Pc Emergency Readiness Workforce says the best way so that you can beat them at their own sport is to be wary.

  5. Thus, you will have access to long term and short term funds.

  6. In truth, quite a few former opponents have sunk down the pyramid or, in a few instances, disappeared altogether.

  7. Additional, technological progress has given the dynamic business surroundings networking programs to maintain them linked and share business associated important information and information throughout the network.

  8. やう 活用表示:

    The publicity apparently labored because the movie received two Oscar nominations.

  9. There are some ways that you can limit the risk of loss from market instability.

  10. On September 3, Temple University introduced lessons can be held on-line for the remainder of the fall semester following the COVID-19 outbreak at the campus.

  11. BrettTIT表示:

    low cost ed meds online: cheap ed medication – cheap boner pills

  12. Long run investment provides compounding value to your funding.

  13. Charlesbot表示:

    https://fastpillseasy.com/# cheap erectile dysfunction pills

  14. fvfuefgmu表示:

    Jogue Double Fortune na KTO! O jogo Double Aposta te leva para celebrar a boa sorte e a alegria de um casal com a chance de ganhar até 100.000x a sua aposta! Nenhuma vitória em um giro? Basta continuar olhando para cima! A Princesa Amor, Estrela ou Tempestade pode aparecer aleatoriamente e usar sua superpotência celestial para alterar o jogo grelha e fazer de você um vencedor. O amor transforma os símbolos; a Estrela adiciona os símbolos selvagens; e a Tempestade zapata os símbolos. Só não se esqueça que precisa salvar o jogo antes de usar o Game Shark, caso corrompa seu save file. Além disso, é preciso do Master Code para que os demais códigos funcionem: Mega Moolah The Witch’s Moon conta com diversas características interessantes relacionadas ao mundo da magia. Com inspiração em franquias famosas como Witcher, Harry Potter, The Magicians e similares, o game permite que os jogadores sejam levados para um universo onde a magia realmente funciona e permite que seus maiores sonhos se tornem realidade.
    https://pulsardirectory.com/listings12912609/poker-face-jogue-ao-vivo-com-seus-amigos-2024
    Proposta é polêmica e deve ser votada pelo Plenário amanhã. Hoje, são autorizadas apenas as apostas em loterias federais ou estaduais, em corridas de cavalos em jóqueis ou as apostas por quota fixa (quando o apostador sabe quanto vai receber se acertar) no mercado esportivo — estas, porém, permanecem sem regulamentação. De acordo com a lei sancionada pelo ex-presidente Michel Temer em 2018, as apostas esportivas deveriam ser regulamentadas pelo Ministério da Economia, com prazo até 12 de dezembro deste ano. É fácil entender porque a combinação de uma interface altamente viciante e dados detalhados do consumidor atraiu o Vale do Silício. Vários grandes casinos e marcas de jogos adquiriram recentemente jogos de azar para smartphones e Schüll diz que ela é frequentemente abordada por pessoas de tecnologia que querem usar seu livro para quebrar o segredo da máquina caça-níqueis. O Tinder, em particular, vem sendo citado como um exemplo desta abordagem de máquina caça-níqueis.

  15. поставить капельницу от запоя на дому цена поставить капельницу от запоя на дому цена .

  16. Charlesbot表示:

    https://fastpillseasy.com/# get ed prescription online

  17. рейтинги процессоров для пк https://topcpu.ru/ .

  18. вывод из запоя на дому в ростове на дону вывод из запоя на дому в ростове на дону .

  19. сравнение процессоров для пк https://topcpu.ru .

  20. Donaldabula表示:

    Viagra online price FastPillsForMen buy viagra here

  21. сравнение производительности процессоров topcpu.ru .

  22. вывод из запоя ростов на дону на дому вывод из запоя ростов на дону на дому .

  23. выезд на дом капельница от запоя выезд на дом капельница от запоя .

  24. When one is aware of the scale of one’s carbon footprint, a counter strategy to successfully reduce the GHG impact might be developed.

發佈留言

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