Acabo de hacer esto para calcular los dias del primer año y del ultimo, restante o vencidos, falta por hacer que se vayan guardando el numero de años bisiestos que hay entremedio, que tengo el algoritmo pero no se como guardar ese dato en algun sitio.
Es esto:
public static void main (String [] args){
int []year1 = {1,1,1998};//menor es primerafecha
int []year2 = {31,12,2000};//mayor es segundafecha
int d1; int f1, f2; int diasaño1, diasaño2;
if ((year1[2]%4==0) && ((year1[2]%100!=0) || (year1[2]%400==0))) d1=1; else d1=0;
if ((year1[2]%4==0) && ((year1[2]%100!=0) || (year1[2]%400==0))) f1=29; else f1=28;
if ((year2[2]%4==0) && ((year2[2]%100!=0) || (year2[2]%400==0))) f2=29; else f2=28;
//Dias que quedan a DIA inicial de cada mes para finalizar el año de la fecha1 sin incluir year1[0].
if (year1[1] == 1) diasaño1=365+d1; else
{if (year1[1] == 2) diasaño1=306+f1;else
{if (year1[1] == 3) diasaño1=306;else
{if (year1[1] == 4) diasaño1=275;else
{if (year1[1] == 5) diasaño1=245;else
{if (year1[1] == 6) diasaño1=214;else
{if (year1[1] == 7) diasaño1=184;else
{if (year1[1] == 8) diasaño1=153;else
{if (year1[1] == 9) diasaño1=122;else
{if (year1[1] == 10) diasaño1=92;else
{if (year1[1] == 11) diasaño1=61;else
{if (year1[1] == 12) diasaño1=31;else diasaño1 = 0;}}}}}}}}}}}
//Algoritmo dias restantes para fin de año.
int diasaño11=diasaño1-year1[0];
System.out.println(diasaño11);
//Dias que han pasado a DIA inicial de cada mes del año de la fecha2.
if (year2[1] == 1) diasaño2=0; else
{if (year2[1] == 2) diasaño2=31;else
{if (year2[1] == 3) diasaño2=31+f2;else
{if (year2[1] == 4) diasaño2=62+f2;else
{if (year2[1] == 5) diasaño2=92+f2;else
{if (year2[1] == 6) diasaño2=123+f2;else
{if (year2[1] == 7) diasaño2=153+f2;else
{if (year2[1] == 8) diasaño2=184+f2;else
{if (year2[1] == 9) diasaño2=215+f2;else
{if (year2[1] == 10) diasaño2=245+f2;else
{if (year2[1] == 11) diasaño2=275+f2;else
{if (year2[1] == 12) diasaño2=306+f2;else diasaño2 = 0;}}}}}}}}}}}
//Algoritmo dias vencidos desde principio de año incluido year2[0].
int diasaño22=year2[0]+(diasaño2);
System.out.println(diasaño22);
//Resultado de sumar todos los días:
int numeroañosenmedio; numeroañosenmedio=year2[2]-year1[2]-1;
int numerobisiestos=¿?;//AQUI RADICA EL PROBLEMA!!!
int resulta=diasaño11+diasaño22+((365*numeroañosenmedio)+numerobisiestos);
System.out.println(resulta);
}
// public static double numbisiesto(int year1,int year2){
// for (int i=year1;i<year2;i++){
// if ((i%4==0) && ((i%100!=0) || (i%400==0)))
// System.out.println(i + "*El año inicial es bisiesto");
// }
// return 0;
NECESITO: (En el código pone AQUI RADICA EL PROBLEMA!!!)
Algo que permita mantener la unidad cada vez que el for en su pasada de verdadero, para que al terminar el for tenga fuera del método una variable que contenga la cantidad de veces que el for respondió verdadero, algo que cuente el numero de bisiestos que hay.
A ver que se ocurre.. Un salu2. Gracias de antemano.
Sub-vorbio.
PD: IsHeR espero que esto te sirva de algo también a tí! gracias por reintroducirme en este ejercicio!