Código de Java - Cálculo de días entre dos fechas

Imágen de perfil

Cálculo de días entre dos fechasgráfica de visualizaciones


Java

Publicado el 10 de Mayo del 2017 por Darknessman666
4.603 visualizaciones desde el 10 de Mayo del 2017
Con este código, realizado en Java para consola, podemos calcular el número de días que hay entre dos fechas que introduciremos por pantalla. El código realiza validaciones sobre las fechas para que sean lógicas. En siguientes versiones incorporaremos más validaciones, reformateos de las fechas y más cosas que se me ocurran o pidáis.

Salu2 desde el infierno

1.0
estrellaestrellaestrellaestrellaestrella(1)

Actualizado el 16 de Julio del 2017 (Publicado el 10 de Mayo del 2017)gráfica de visualizaciones de la versión: 1.0
4.604 visualizaciones desde el 10 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
import java.util.StringTokenizer;
 
public class CalDias {
 
	public static void main(String[] args) throws ParseException {
//* Definimos la variable para almacenar la fecha menor
		String D_FEC_INI = "";
//* Definimos la variable para almacenar la fecha mayor
        String D_FEC_FIN = "";
//* Definimos la variable para almacenar la fecha a verificar
        String VERIF_FECHA = "";
//* Limpiamos la pantalla. Ya que no existe comando, instertamos lineas en blanco a la consola
		for (int i=0; i<200;i++)
		System.out.println();
//* Se define el formato de las fechas
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
//* Bienvenida al programa
		System.out.println ("*------------------------------------------*");
		System.out.println (" BIENVENIDO AL CALCULO DE DIAS ENTRE FECHAS ");
		System.out.println ("*------------------------------------------*");
//* Solicitamos la fecha
        System.out.println ("Introduzca Fecha Inicial (en formato YYYY-MM-DD) :");
//* Aceptamos la fecha introducida por pantalla
        Scanner entradaEscaner = new Scanner (System.in);
//* Movemos la fecha a la variable definida
        D_FEC_INI = entradaEscaner.nextLine ();
//* Verificamos el formato de la variable si se corresponde con YYYY-MM-DD
		Date fechaInicial=dateFormat.parse(D_FEC_INI);
//* Llamamos al procedimiento de verificacion de fechas
		verificar(D_FEC_INI);
//* Solicitamos la segunda fecha
        System.out.println ("Introduzca Fecha Final (en formato YYYY-MM-DD) :");
//* Movemos la segunda fecha a la variable definida
        D_FEC_FIN = entradaEscaner.nextLine ();
//* Verificamos el formato de la variable si se corresponde con YYYY-MM-DD		
		Date fechaFinal=dateFormat.parse(D_FEC_FIN);
//* Llamamos al procedimiento de verificacion de fechas
		verificar(D_FEC_FIN);
//* Se calcula el numero de dias entre las dos fechas
		int dias=(int) ((fechaFinal.getTime()-fechaInicial.getTime())/86400000);
//* Linea en blanco 
		System.out.println("");
//* Se muestra por pantalla el resultado de la operacion
		System.out.println("Entre el "+D_FEC_INI+" y el "+D_FEC_FIN+" existen "+dias+" dias de diferencia");
	}
	private static void verificar(String VERIF_FECHA){
	System.out.println("");
	System.out.println("Verificamos la fecha enviada "+VERIF_FECHA);
		String DATA[] = VERIF_FECHA.split("-");
		String DIA = DATA[2];
		String MES = DATA[1];
		String ANY = DATA[0];
		System.out.println("DIA: "+DIA);
		System.out.println("MES :"+MES);
		System.out.println("ANY :"+ANY);
		System.out.println("");
 
		switch(MES){
			case "01":
			case "03":
			case "05":
			case "07":
			case "08":
			case "10":
			case "12":
				if (Integer.valueOf(DIA) >= 1 && Integer.valueOf(DIA) <= 31)
					break;
				else
					System.out.println("La fecha "+VERIF_FECHA+" es incorrecta. El mes "+MES+" no tiene dia "+DIA+". La operacion no sera correcta");
					System.out.println("FINALIZAMOS EL PROGRAMA ANTES DE TIEMPO POR ERROR DE DATOS A LA ENTRADA");
					System.exit(0);
				break;
			case "04":
			case "06":
			case "09":
			case "11":
				if (Integer.valueOf(DIA) >= 1 && Integer.valueOf(DIA) <= 30)
					break;
				else
					System.out.println("La fecha "+VERIF_FECHA+" es incorrecta. El mes "+MES+" no tiene dia "+DIA+". La operacion no sera correcta");
					System.out.println("FINALIZAMOS EL PROGRAMA ANTES DE TIEMPO POR ERROR DE DATOS A LA ENTRADA");
					System.exit(0);
				break;
			case "02":
				if (Integer.valueOf(DIA) >= 1 && Integer.valueOf(DIA) <= 29)
					break;
				else
					System.out.println("La fecha "+VERIF_FECHA+" es incorrecta. El mes "+MES+" no tiene dia "+DIA+". La operacion no sera correcta");
					System.out.println("FINALIZAMOS EL PROGRAMA ANTES DE TIEMPO POR ERROR DE DATOS A LA ENTRADA");
					System.exit(0);
				break;
			default:
				System.out.println("En mes "+MES+" no existe. Los calculos no seran correctos");
				System.out.println("FINALIZAMOS EL PROGRAMA ANTES DE TIEMPO POR ERROR DE DATOS A LA ENTRADA");
				System.exit(0);
		}
	}
}



Comentarios sobre la versión: 1.0 (1)

Monde
2 de Octubre del 2017
estrellaestrellaestrellaestrellaestrella
Con tratamiento de excepciones y años bisiestos estaría más completo. Saludos!
Responder

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3986