miércoles, 23 de septiembre de 2009

Calcular la diferencia en días entre dos fechas en Java





Queremos saber los días que han pasado entre dos fechas. Ejemplo: 10-09-2009 y 3-9-2009, su diferencia serían 7 días. Para ello, lo calcularíamos con el siguiente código:


java.util.Date fechaAnterior, fechaPosterior;
diferencia= ( fechaAnterior.getTime() - fechaPosterior.getTime() )/ MILLSECS_PER_DAY;



Ejemplo


Vamos a calcular los días que han pasado desde una fecha dada hasta el día de hoy.


final long MILLSECS_PER_DAY = 24 * 60 * 60 * 1000; //Milisegundos al día 
java.util.Date hoy = new Date(); //Fecha de hoy 
     
int año = 2009; int mes = 10; int dia = 22; //Fecha anterior 
Calendar calendar = new GregorianCalendar(año, mes-1, dia); 
java.sql.Date fecha = new java.sql.Date(calendar.getTimeInMillis());

long diferencia = ( hoy.getTime() - fecha.getTime() )/MILLSECS_PER_DAY; 
System.out.println(diferencia); 

Nota: Fijémosnos que al inicializar el Calendar hemos restado uno al mes. Ésto se debe a que este parámetro empieza en cero, correspondiendo el cero a Enero, el uno a Febrero, ...

Actualización: Ante los diversos comentarios al respecto, he creado un post en el que se explica cómo calcular la diferencia en días utilizando la librería Joda Time, podéis encontrarlo aquí: http://felinfo.blogspot.com.es/2015/10/calcular-la-diferencia-en-dias-entre.html




martes, 15 de septiembre de 2009

Acelerar Firefox en Linux: Swiftfox

swiftfox.jpg




El mejor navegador web bajo Linux


Después de una larga búsqueda, he encontrado un navegador rápido y funcional bajo Linux. Se trata de Swiftfox. Es una versión de Firefox optimizada para distintos procesadores. La agilidad para navegar es muy superior a la del navegador de Mozilla, contando con todas características y funciones de éste.




Instalando Swiftfox


1.Descargamos el paquete correspondiente de http://getswiftfox.com/installer.htm, y lo guardamos en nuestro directorio personal


2.Abrimos un terminal


3.Ejecutamos el instalador tecleando lo siguiente:




sh install-swiftfox.sh


4.Iniciamos Swiftfox seleccionádolo desde el menú.




Instalar el plugin Flash


1.Abrir un terminal


2.Ejecutar lo siguiente (si no existe dicho directorio):




mkdir ~/.mozilla/plugins


3.Descargar Flash (.tar.gz) desde http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash


4.Descomprimir y mover libflashplayer.so en el directorio ~/.mozilla/plugins


5.Reiniciar Swiftfox.




domingo, 13 de septiembre de 2009

¿La instalación de mi Ubuntu es de 32 o 64 bits?

ubuntu-1.jpg


Puede que nos estemos haciendo esta pregunta. El número de bits indica la longitud de las instrucciones del procesador, por tanto si es de 32, deberemos instalar la versión de Ubuntu de 32 bits, y su correspondiente para el caso de 64.


Si queremos saber cual es el que tenemos instalado, nada más fácil que irnos a consola y escribir:




uname -a


Y el resultado puede ser parecido a esto:




Linux miEquipo 2.6.28-14-generic #48-Ubuntu SMP Wed Jul 29 22:16:50 UTC 2009 i686 GNU/Linux


Vemos que la colección de instruciones es la i686, por tanto es de 32 bits. En general tendríamos lo siguiente:


i686 → 32 bits


x86_64 → 64 bits




miércoles, 9 de septiembre de 2009

Crontab: ejecución de tareas automáticas en segundo plano

linux[1].jpg


¿Crontab?


Crontab es un programa que manipula el demonio (daemon) CRON, haciendo fácil a los usuarios la programación de tareas y la ejecución de comandos en periodos predeterminados de tiempo. Crontad puede ser considerado como un archivo el cual contiene comandos que se ejecutarán por el sistema como si el usuario fuera el dueño del archivo crontab.




Comandos


crontab -l Lista las tareas actuales de cron


crontab -e Edita el archivo crontab actual y añade/borra/edita las tareas crontab


crontab -r Borra el archivo crontab


crontab -v Muestra la última vez que fue editado el archivo crontab




El archivo crontab - componentes de crontab


Cada trabajo cron tiene 6 secciones. Cada sección está separada por un espacio. Las secciones 1-5 indican con qué frecuencia se quiere ejecutar la tarea (que es la sección 6). Nota: Si el sistema está apagado, crontab no se va a ejecutar. Cuando el sistema se arranque, crontab volverá a funcionar, pero sin realizar las tareas que no se realizaron mientras estaba apagado.


Aquí están mejor explicadas las posiciones 1-5:


1 Minuto 0-59


2 Hora 0-23 (0 = Medianoche)


3 Día 1-31


4 Mes 1-12


5 Semana 0-6 (0 = Domingo)


Un asterisco (*) significa en cada instancia (ejemplo: cada hora, cada semana, etc.) del particular periodo en el que va a ser usado.


La sexta posición indica la tarea que se va a ejecutar en el tiempo dado. Por ejemplo, si quieres borrar todos los archivos del directorio "temp" cada mañana a las 4:45, el comando sería así:




45 4 * * * rm /home/{username}/temp/*




Ejemplo práctico


Queremos imprimir en un archivo de texto la fecha actual cada minuto. Nos vamos a un terminal y tecleamos:




crontab -e


y añadirmos al final la línea:




* * * * * date >>archivo.txt


Y guardamos (si usamos el editor nano, lo haremos mediante Control+O). Ahora el archivo archivo.txt contentrá algo parecido a esto:




Tue Sep 8 17:12:01 CEST 2009
Tue Sep 8 17:13:01 CEST 2009
Tue Sep 8 17:14:01 CEST 2009
Tue Sep 8 17:15:01 CEST 2009
...




Fuentes


http://www.linuxweblog.com/crotab-tutorial


http://all4wp.blogspot.com/2008/03/cron-for-dummies.html




jueves, 3 de septiembre de 2009

Diferencia entre un archivo WAR y un EAR

icono java




WAR


Es un archivo JAR (con la extensión WAR) usado para distribuir una colección de archivos JSP, servlets, clases Java, archivos XML y contenido web estático (HTML). En conjunto constituyen una aplicación Web.




EAR


Es un formato para empaquetar en un sólo archivo varios módulos. Permite desplegar varios de esos módulos en una servidor de aplicaciones. Contiene archivos XML llamados descriptores de depliegue que describen cómo realizar dicha operación.




Conclusión


Un archivo EAR contiene un archivo WAR y un directorio llamado META-INF en el cual se encuentran los descriptores de despliegue.


EAR = WAR + META-INF




Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO