Contador de años, meses y dias en mi programa de periodos
Publicado por Daniel Jesus (4 intervenciones) el 09/09/2014 17:26:30
Hola pues hise este programa donde me dice el periodo de tiempo de una fecha inicio y una final, ahora le pregunto al usuario si quiere ingresar otro periodo cuando da que `s` (si) lo agrega el periodo pero este quiero que se sume con anterior por ejemplo le agrego lo siguiente:
16/08/1993 - 09/09/2014 = 21 años, 0 meses, 24 dias
14/02/1995 - 18/05/2001 = 6 años, 3 meses, 35 dias
____________________________________________
Total:..........................................27 años, 3 meses y 59 dias
16/08/1993 - 09/09/2014 = 21 años, 0 meses, 24 dias
14/02/1995 - 18/05/2001 = 6 años, 3 meses, 35 dias
____________________________________________
Total:..........................................27 años, 3 meses y 59 dias
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
public void diferencia(){
char seguir=0;
Scanner teclado =new Scanner(System.in);
do{
System.out.println("DIA/MES/AÑO ");
System.out.println("Escribe la primer fecha: ");
String fechaInicio = teclado.next();
System.out.println("Escribe la segunda fecha: ");
String fechaActual = teclado.next();
//dia/mes/año
// String fechaInicio = "16/08/1993";
// String fechaActual = "09/09/2014";
String[] aFechaIng = fechaInicio.split("/");
Integer diaInicio = Integer.parseInt(aFechaIng[0]);
Integer mesInicio = Integer.parseInt(aFechaIng[1]);
Integer anioInicio = Integer.parseInt(aFechaIng[2]);
String[] aFecha = fechaActual.split("/");
Integer diaActual = Integer.parseInt(aFecha[0]);
Integer mesActual = Integer.parseInt(aFecha[1]);
Integer anioActual = Integer.parseInt(aFecha[2]);
// System.out.println("Dia actual: " + diaActual);
// System.out.println("Mes actual: " + mesActual);
// System.out.println("Año actual: " + anioActual);
int b = 0;
int dias = 0;
int mes = 0;
int anios = 0;
int meses = 0;
mes = mesInicio - 1;
// se comprueba que el anio sea bisiesto si es divisible entre 4 o 400
if(mes==2){
if ((anioActual % 4 == 0) && ((anioActual % 100 != 0) || (anioActual % 400 == 0))){
b = 29;
}else{
b = 28;
}
}else if(mes <= 7){
if(mes == 0){
b = 31;
}else if(mes % 2==0){
b = 30;
}else{
b = 31;
}
}else if(mes > 7){
if(mes % 2 == 0){
b = 31;
}else{
b = 30;
}
}
if((anioInicio > anioActual) || (anioInicio == anioActual && mesInicio > mesActual) ||
(anioInicio == anioActual && mesInicio == mesActual && diaInicio > diaActual)){
// Diferentes tipos de errores al escribir las fechas
System.out.println("La fecha de inicio debe ser anterior a la fecha Actual");
}else{ //Se procede a hacer el calculo de los periodos de tiempo
if(mesInicio <= mesActual){
anios = anioActual - anioInicio;
if (diaInicio <= diaActual){
meses = mesActual - mesInicio;
dias = b - (diaInicio - diaActual);
}else{
if(mesActual == mesInicio){
anios = anios - 1;
}
meses = (mesActual - mesInicio - 1 + 12) % 12;
dias = b - (diaInicio - diaActual);
}
}else{
anios = anioActual - anioInicio - 1;
System.out.println("Años?¿: " + anios);
if(diaInicio > diaActual){
meses = mesActual - mesInicio - 1 + 12;
dias = b - (diaInicio - diaActual);
}else{
meses = mesActual - mesInicio + 12;
dias = diaActual -diaInicio;
}
}
}
System.out.println("Años: "+anios);
System.out.println("Meses: "+meses);
System.out.println("Días: "+dias);
System.out.println("Desea agregar otro periodo? ");
seguir = teclado.next().charAt(0);
}while(seguir!='n');
}//Termina metodo difer
Valora esta pregunta
0