国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

JAVA時間日期處理類實例

2019-11-26 15:12:45
字體:
來源:轉載
供稿:網友

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

/*** * 文 件 名: AccountDate.java* * 創建時間: 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; /** 閏年中每月天數 */ private static final int[] DAYS_P_MONTH_LY= {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; /** 非閏年中每月天數 */ private static final int[] DAYS_P_MONTH_CY= {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; /** 代表數組里的年、月、日 */ private static final int Y = 0, M = 1, D = 2; /** * 將代表日期的字符串分割為代表年月日的整形數組 * @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; } /** * 檢查傳入的參數代表的年份是否為閏年 * @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; } /** * 將不足兩位的月份或日期補足為兩位 * @param decimal * @return */ public static String formatMonthDay(int decimal){  DecimalFormat df = new DecimalFormat("00");  return df.format( decimal ); } /** * 將不足四位的年份補足為四位 * @param decimal * @return */ public static String formatYear(int decimal){  DecimalFormat df = new DecimalFormat("0000");  return df.format( decimal ); } /** * 計算兩個日期之間相隔的天數 * @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; } /** * 以循環的方式計算日期 * @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);  } }}

希望本文所述對大家的java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通化市| 明溪县| 通河县| 长顺县| 麟游县| 泌阳县| 景德镇市| 金山区| 和田县| 元江| 榆社县| 鄄城县| 万盛区| 浪卡子县| 博湖县| 湾仔区| 常德市| 临沭县| 文水县| 镇安县| 建阳市| 靖远县| 石城县| 双柏县| 洛川县| 丰城市| 永新县| 通山县| 巴南区| 桃源县| 三门县| 大悟县| 崇仁县| 江城| 新源县| 武宁县| 安西县| 安达市| 青川县| 儋州市| 揭西县|