O exemplo neste artigo descreve a classe de processamento de data e hora JAVA, que é usada principalmente para percorrer todos os dias entre duas datas. Compartilhe com todos para sua referência. Os detalhes são os seguintes:
/*** * Nome do arquivo: AccountDate.java* * Hora de criação: 18/11/2008** E-mail: **@163.com*/import java.text.DecimalFormat;import java.text.ParseException;import java. text.SimpleDateFormat;importar java.util.ArrayList;importar java.util.Date;importar java.util.List;classe pública AccountDate { privado static transient int gregorianCutoverYear = 1582 /** Número de dias por mês em ano bissexto*/ private static final int[] DAYS_P_MONTH_LY= {31, 29, 31, 30, 31, 30, 31, 31, 30, 31 , 30, 31} ;** Número de dias por mês em anos não bissextos*/ private static final int[] DAYS_P_MONTH_CY= {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} /** Representa o ano, mês e dia na matriz*/ private static final; int Y = 0, M = 1, D = 2 /** * Divida a string que representa a data em uma matriz inteira representando o ano, mês e dia* @param data * @return */ public static int[] splitYMD(String data){ data = data.replace("-", ""); = Integer.parseInt(data.substring(0, 4)); ymd[D] = Integer.parseInt(date.substring(6, 8)); return ymd } /** * Verifique se o ano representado pelo parâmetro passado é um ano bissexto* @param ano * @return */ public static boolean isLeapYear(int ano) { return ano >= gregorianCutoverYear ?(ano%4 == 0) && ((ano%100 != 0) || (ano%400 == 0))) : (ano%4 == 0); /** * Data mais 1 dia* @param ano * @param mês * @param dia * @return */ private static int[] addOneDay(int ano, int mês, int dia){ if(isLeapYear( ano )){ dia++; mês++; if(mês > 12){ ano++; mês = 1; dia = 1;else{ dia++; = 1; } dia = 1; } int[] ymd = {ano, mês, dia}; Complemente o mês ou dia com menos de dois dígitos a dois dígitos * @param decimal * @return */ public static String formatMonthDay(int decimal){ DecimalFormat df = new DecimalFormat("00"); } /** * Complementar o ano com menos de quatro dígitos a quatro dígitos * @param decimal * @return */ public static String formatYear(int decimal){ DecimalFormat df = new DecimalFormat("0000"); return df.format( decimal } /** * Calcula o número de dias entre duas datas * @param start * @param end * @return * @throws ParseException */ public static long countDay ( String start,String end){ Formato SimpleDateFormat = new SimpleDateFormat("aaaa-MM-dd"); = 0; tente { começarDate= formato.parse(início); fimDate= formato.parse(fim); catch (ParseException e) { e.printStackTrace() } return day } /** * Calcula datas em um loop* @param beginDate endDate * @param dias * @return */ public static List<String> getEveryday(String BeginDate, String endDate){ long days = countDay(beginDate, endDate = new); ArrayList<String>(); everyDays.add(beginDate); for(int i = 0; i < dias; i++){ ymd = addOneDay(ymd[Y], ymd[M], ymd[D]); everyDays.add(formatYear(ymd[Y])+"-"+formatMonthDay(ymd[M])+"-"+formatMonthDay( ymd[D])); } return todos os dias } public static void main(String[] args) { List<String> list; = AccountDate.getEveryday("2008-08-29", "2008-09-02"); for (String resultado: lista) { System.out.println(resultado } }}
Espero que este artigo seja útil para a programação Java de todos.