Hora en milisegundos con Java
Da el número de milisegundos que han pasado entre la fecha actual y la medianoche del 1 de enero de 1970 UTC.
System.currentTimeMillis();
public Fecha fechaHoy(){
long segundos = System.currentTimeMillis()/1000;
long dias = segundos/(24*60*60);
segundos = segundos%(24*60*60);
long horas = segundos/(60*60);
segundos = segundos%(60*60);
long minutos = segundos/60;
segundos = segundos%60;
Fecha origen = new Fecha(1,1,1970);
Fecha hoy = origen.diasMasFecha((int)dias);
return hoy;
}
public Fecha diasMasFecha(int dias){
Fecha devuelve= null;int mismoMes = 0;
this.dia = dia;
this.mes = mes;
this.anyo= anyo;
if (esValida(dia,mes,anyo))
mismoMes = diasMes - dia;
if(mismoMes>=dias) {dia = dia+dias; mes = mes; anyo = anyo; devuelve = new Fecha (dia,mes,anyo);}
else{dia = dias-mismoMes;if (mes ==12){mes = 1;anyo = anyo+1; devuelve = new Fecha (dia,mes,anyo);}
else{mes =mes+1;anyo = anyo; devuelve = new Fecha (dia,mes,anyo); }
}
return devuelve;
}
public static boolean esValida(int dia, int mes, int anyo){
boolean esValida = false;
if(mes<1||mes>12||dia<1||dia>31)esValida = false;
switch(mes){
case 2: if(esBisiesto(anyo)){diasMes =29;if(dia<=29)esValida = true;break;}
else {diasMes = 28;if(dia<=28)esValida =true;break;}
case 4:
case 6:
case 9:
case 11: diasMes = 30; if(dia<=30)esValida = true;break;
default: diasMes = 31;if(dia<=31) esValida = true;break;
}
if(anyo == 1582&&mes ==10)if(dia>=5&&dia<=14)esValida = false;
return esValida;
}
public static boolean esBisiesto(int anyo){
boolean devuelve = false;
if(anyo >= 1582){ if( anyo%4==0&&anyo%100!=0||anyo%400==0){devuelve = true;}}
else if(anyo>=1&&anyo<1582){if(anyo%4==0) devuelve = true;}
return devuelve;
}
Comentarios
Publicar un comentario