欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA時(shí)間日期處理類(lèi)實(shí)例

 更新時(shí)間:2015年04月21日 12:03:50   作者:MagicYK  
這篇文章主要介紹了JAVA時(shí)間日期處理類(lèi),可實(shí)現(xiàn)遍歷兩個(gè)日期之間的每一天的功能,涉及針對(duì)日期的常見(jiàn)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了JAVA時(shí)間日期處理類(lèi),主要用來(lái)遍歷兩個(gè)日期之間的每一天。分享給大家供大家參考。具體如下:

/**
* 
* 文 件 名: AccountDate.java
* 
* 創(chuàng)建時(shí)間: 2008-11-18
*
* Email : **@163.com
*/
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class AccountDate {
 private static transient int gregorianCutoverYear = 1582;
 /** 閏年中每月天數(shù) */
 private static final int[] DAYS_P_MONTH_LY= {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 /** 非閏年中每月天數(shù) */
 private static final int[] DAYS_P_MONTH_CY= {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 /** 代表數(shù)組里的年、月、日 */
 private static final int Y = 0, M = 1, D = 2;
 /**
 * 將代表日期的字符串分割為代表年月日的整形數(shù)組
 * @param date
 * @return
 */
 public static int[] splitYMD(String date){
  date = date.replace("-", "");
  int[] ymd = {0, 0, 0};
  ymd[Y] = Integer.parseInt(date.substring(0, 4));
  ymd[M] = Integer.parseInt(date.substring(4, 6));
  ymd[D] = Integer.parseInt(date.substring(6, 8));
  return ymd;
 }
 /**
 * 檢查傳入的參數(shù)代表的年份是否為閏年
 * @param year
 * @return
 */
 public static boolean isLeapYear(int year) {
  return year >= gregorianCutoverYear ?
   ((year%4 == 0) && ((year%100 != 0) || (year%400 == 0))) : (year%4 == 0); 
 }
 /**
 * 日期加1天
 * @param year
 * @param month
 * @param day
 * @return
 */
 private static int[] addOneDay(int year, int month, int day){
  if(isLeapYear( year )){
   day++;
   if( day > DAYS_P_MONTH_LY[month -1 ] ){
    month++;
    if(month > 12){
     year++;
     month = 1;
    }
    day = 1;
   }
  }else{
   day++;
   if( day > DAYS_P_MONTH_CY[month -1 ] ){
    month++;
    if(month > 12){
     year++;
     month = 1;
    }
    day = 1;
   }
  }
  int[] ymd = {year, month, day};
  return ymd;
 }
 /**
 * 將不足兩位的月份或日期補(bǔ)足為兩位
 * @param decimal
 * @return
 */
 public static String formatMonthDay(int decimal){
  DecimalFormat df = new DecimalFormat("00");
  return df.format( decimal );
 }
 /**
 * 將不足四位的年份補(bǔ)足為四位
 * @param decimal
 * @return
 */
 public static String formatYear(int decimal){
  DecimalFormat df = new DecimalFormat("0000");
  return df.format( decimal );
 }
 /**
 * 計(jì)算兩個(gè)日期之間相隔的天數(shù)
 * @param begin
 * @param end
 * @return
 * @throws ParseException
 */
 public static long countDay(String begin,String end){
   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
   Date beginDate , endDate;
   long day = 0;
   try {
   beginDate= format.parse(begin);
   endDate= format.parse(end);
   day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000); 
  } catch (ParseException e) {
   e.printStackTrace();
  }    
   return day;
 }
 /**
 * 以循環(huán)的方式計(jì)算日期
 * @param beginDate endDate
 * @param days
 * @return
 */
 public static List<String> getEveryday(String beginDate , String endDate){
  long days = countDay(beginDate, endDate);
  int[] ymd = splitYMD( beginDate );
  List<String> everyDays = new ArrayList<String>();
  everyDays.add(beginDate);
  for(int i = 0; i < days; i++){
   ymd = addOneDay(ymd[Y], ymd[M], ymd[D]);
   everyDays.add(formatYear(ymd[Y])+"-"+formatMonthDay(ymd[M])+"-"+formatMonthDay(ymd[D]));
  }
  return everyDays;
 }
 public static void main(String[] args) {
  List<String> list = AccountDate.getEveryday("2008-08-29", "2008-09-02");
  for (String result : list) {
   System.out.println(result);
  }
 }
}

希望本文所述對(duì)大家的java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • JAVA實(shí)現(xiàn)第三方短信發(fā)送過(guò)程詳解

    JAVA實(shí)現(xiàn)第三方短信發(fā)送過(guò)程詳解

    這篇文章主要介紹了JAVA實(shí)現(xiàn)第三方短信發(fā)送過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 徹底搞懂Java多線(xiàn)程(二)

    徹底搞懂Java多線(xiàn)程(二)

    這篇文章主要給大家介紹了關(guān)于Java面試題之多線(xiàn)程和高并發(fā)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • Flutter驗(yàn)證碼輸入框的2種方法實(shí)現(xiàn)

    Flutter驗(yàn)證碼輸入框的2種方法實(shí)現(xiàn)

    本文主要介紹了Flutter驗(yàn)證碼輸入框的2種方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)

    Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 詳解Java中綴表達(dá)式的實(shí)現(xiàn)

    詳解Java中綴表達(dá)式的實(shí)現(xiàn)

    中綴表達(dá)式是一個(gè)通用的算術(shù)或邏輯公式表示方法。,中綴表達(dá)式不容易被計(jì)算機(jī)解析,但仍被許多程序語(yǔ)言使用,因?yàn)樗先藗兊钠毡橛梅?。本文介紹了實(shí)現(xiàn)中綴表達(dá)式的方法,需要的可以參考一下
    2022-07-07
  • spring本地事務(wù)失效的原因分析

    spring本地事務(wù)失效的原因分析

    這篇文章給大家介紹了spring本地事務(wù)失效的情況原因分析,給大家羅列了五種原因分析,通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-10-10
  • Java調(diào)用SQL腳本執(zhí)行常用的方法示例

    Java調(diào)用SQL腳本執(zhí)行常用的方法示例

    這篇文章主要給大家介紹了關(guān)于Java調(diào)用SQL腳本執(zhí)行常用的方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • JAVA 中實(shí)現(xiàn)整句漢字拆分、轉(zhuǎn)換為ASCII實(shí)例詳解

    JAVA 中實(shí)現(xiàn)整句漢字拆分、轉(zhuǎn)換為ASCII實(shí)例詳解

    這篇文章主要介紹了JAVA 中實(shí)現(xiàn)整句漢字拆分、轉(zhuǎn)換為ASCII實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java mail 發(fā)送郵件的具體實(shí)例

    Java mail 發(fā)送郵件的具體實(shí)例

    這篇文章主要介紹了Java mail 發(fā)送郵件的具體實(shí)例,需要的朋友可以參考下
    2014-02-02
  • Java 泛型總結(jié)(一):基本用法與類(lèi)型擦除

    Java 泛型總結(jié)(一):基本用法與類(lèi)型擦除

    本文主要介紹了Java泛型的使用以及類(lèi)型擦除相關(guān)的問(wèn)題。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03

最新評(píng)論