一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - JAVA時(shí)間日期處理類實(shí)例

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

2019-12-16 13:35MagicYK JAVA教程

這篇文章主要介紹了JAVA時(shí)間日期處理類,可實(shí)現(xiàn)遍歷兩個(gè)日期之間的每一天的功能,涉及針對(duì)日期的常見操作技巧,需要的朋友可以參考下

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/**
*
* 文 件 名: 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ì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美一区二区三区久久 | 色狠狠狠狠狠香蕉 | 吻戏辣妞范1000免费体验 | 黄 在线播放| 2021国产麻豆剧传媒新片 | 日本道在线播放 | 极品 女神校花 露脸91 | 小舞同人18av黄漫网站 | 四虎免费在线观看 | 无敌在线视频观看免费 | 国产亚洲综合成人91精品 | 欧美成狂野欧美在线观看 | 丝瓜视频成人在线观看 | 我在厨房摸岳的乳HD在线观看 | 亚洲aⅴ男人的天堂在线观看 | 99视频精品全部 在线 | 亚洲美女aⅴ久久久91 | 91精品综合国产在线观看 | x8x8在线观看免费 | 91精品国产色综合久久 | 国产精品麻豆 | 我的奶头被客人吸的又肿又红 | 啊啊啊好大好爽视频 | 久久久乱码精品亚洲日韩 | 13日本xxxxxxxxx18 1313午夜精品久久午夜片 | 亚洲激情综合 | 日韩国产欧美成人一区二区影院 | 国产在线影院 | 欧美日韩在线一区二区三区 | 99re8在线精品视频免费播放 | 国产午夜亚洲精品理论片不卡 | 亚洲天堂伦理 | 大陆国语自产精品视频在 | 成人 在线欧美亚洲 | 2020国产精品视频免费 | 欧美se图| 久久影院中文字幕 | 成人一区二区丝袜美腿 | 久久国产伦子伦精品 | 99re这里只有精品视频在线观看 | 99精品国产在现线免费 |