English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este programa, aprenderá a sumar dos fechas usando Calendar en Java.
debido a que la era Java es1970 años, por lo que cualquier tiempo representado por el objeto Date no funciona. Esto significa que, su fecha se1970 años, cuando se suman dos objetos de fecha, se perderá aproximadamente1970 años. Por lo tanto, usamos Calendar.
import java.util.Calendar; public class AddDates { public static void main(String[] args) { Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); Calendar cTotal = (Calendar) c1.clonar(); cTotal.add(AÑO_DEL_CALENDARIO, c2.get(AÑO_DEL_CALENDARIO)); cTotal.add(MES_DEL_CALENDARIO, c2.get(MES_DEL_CALENDARIO) + 1); // el mes comenzando desde cero cTotal.add(DIA_DEL_CALENDARIO, c2.get(DIA_DEL_CALENDARIO)); cTotal.add(HORA_DEL_DIA, c2.get(HORA_DEL_DIA)); cTotal.add(Calendar.MINUTE, c2.get(Calendar.MINUTE)); cTotal.add(Calendar.SECOND, c2.get(Calendar.SECOND)); cTotal.add(Calendar.MILLISECOND, c2.get(Calendar.MILLISECOND)); System.out.format("%s + %s = %s", c1.getTime(), c2.getTime(), cTotal.getTime()); } }
Al ejecutar el programa, la salida es:
Mar Ago 08 10:20:56 NPT 2017 + Mar Ago 08 10:20:56 NPT 2017 = Mon Abr 16 20:41:53 NPT 4035
en el programa anterior, c1y c2Luego, simplemente clonamos c1, y almacenamos la fecha actual en c2cada atributo DateTime en la fecha.
Como puede ver, aumentamos uno por uno1Esto se debe a que los meses comienzan en 0 en Java.