Contar los días que hay entre dos fechas
A continuación se muestra una función que se podría utilizar para contar los días que hay entre dos fechas. El lenguaje utilizado es Java y se emplea el Calendar para facilitar la tarea.
/**
* @param desde - Date con la fecha inicial
* @param hasta - Date con la fecha final
* @return int - devuelve el total de días que hay entre las
* dos fechas sin contar sábados ni domingos.
*/
private int devuelveDiasLaborables(Date desde, Date hasta){
Calendar calendarDesde = Calendar.getInstance();
calendarDesde.setTime(formatoFecha.parse(desde));
Calendar calendarHasta = Calendar.getInstance();
calendarHasta.setTime(formatoFecha.parse(hasta));
int contador = 0;
while (!calendarDesde.after( calendarHasta )) {
if((calendarDesde.get(Calendar.DAY_OF_WEEK)!=Calendar.SATURDAY) &&
(calendarDesde.get(Calendar.DAY_OF_WEEK)!=Calendar.SUNDAY)){
//si no es sábado ni domingo incrementamos la cuenta
contadorDias++;
}
calendarDesde.add(Calendar.DAY_OF_MONTH, 1);//Siguiente día
}
return contador;
}
Tabla de ASCII estándar, nombres de entidades HTML
(espacio en blanco)
| Tabla de ASCII estándar, nombres de entidades HTML, ISO 10646, ISO 8879, ISO 8859-1 alfabeto romano numero 1 Soporte para browsers: todos los browsers |
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
HTML 4.01, ISO 10646, ISO 8879, alfabeto romano extendido A y B, Soporte para browsers: Internet Explorer > 4, Netscape > 4 |
||||||||||||||||||||||||
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||
Codificación de colores
Este es el listado de colores que recomienda usar la W3C y que, por lo tanto, funcionan (o deberían funcionar) en todos los navegadores.
En la tabla se puede ver tanto su valor hexadecimal como el nombre que tienen asignado.
| Nombre del color | Código RGB | Nombre del color | Código RGB | |
|---|---|---|---|---|
| Aliceblue | #F0F8FF | Antiquewhite | #FAEBD7 | |
| Aqua | #00FFFF | Aquamarine | #7FFFD4 | |
| Azure | #00FFFF | Beige | #F5F5DC | |
| Bisque | #FFE4C4 | Black | #000000 | |
| Blanchedalmond | #FFEBCD | Blue | #0000FF | |
| Blueviolet | #8A2BE2 | Brown | #A52A2A | |
| Burlywood | #DEB887 | Cadetblue | #5F9EA0 | |
| Chartreuse | #7FFF00 | Chocolate | #D2691E | |
| Coral | #FF7F50 | Cornflowerblue | #6495ED | |
| Cornsilk | #FFF8DC | Crimson | #DC143C | |
| Cyan | #00FFFF | Darkblue | #00008B | |
| Darkcyan | #008B8B | Darkgoldenrod | #B8860B | |
| Darkgray | #A9A9A9 | Darkgreen | #006400 | |
| Darkkhaki | #BDB76B | Darkmagenta | #8B008B | |
| Darkolivegreen | #556B2F | Darkorange | #FF8C00 | |
| Darkorchid | #9932CC | Darkred | #8B0000 | |
| Darksalmon | #E9967A | Darkseagreen | #8FBC8F | |
| Darkslateblue | #483D8B | Darkslategray | #2F4F4F | |
| Darkturquoise | #00CED1 | Darkviolet | #9400D3 | |
| Deeppink | #FF1493 | Deepskyblue | #00BFFF | |
| Dimgray | #696969 | Dodgerblue | #1E90FF | |
| Firebrick | #B22222 | floralwhite | #FFFAF0 | |
| forestgreen | #228B22 | fuchsia | #FF00FF | |
| gainsboro | #DCDCDC | ghostwhite | #F8F8FF | |
| gold | #FFD700 | goldenrod | #DAA520 | |
| gray | #808080 | green | #008000 | |
| greenyellow | #ADFF2F | honeydew | #F0FFF0 | |
| hotpink | #FF69B4 | indianred | #CD5C5C | |
| indigo | #4B0082 | ivory | #FFFFF0 | |
| khaki | #F0E68C | lavender | #E6E6FA | |
| lavenderblush | #FFF0F5 | lawngreen | #7CCMC00 | |
| lemonchiffon | #FFFACD | lightblue | #ADD8E6 | |
| lightcoral | #F08080 | lightcyan | #E0FFFF | |
| lightgoldenrodyellow | #FAFAD2 | lightgreen | #90EE90 | |
| lightgrey | #D3D3D3 | lightpink | #FFB6C1 | |
| lightsalmon | #FFA07A | lightseagreen | #20B2AA | |
| lightskyblue | #87CEFA | lightslategray | #778899 | |
| lightsteelblue | #B0C4DE | lightyellow | #FFFFE0 | |
| lime | #00FF00 | limegreen | #32CD32 | |
| linen | #FAF0E6 | magenta | #FF00FF | |
| maroon | #800000 | mediumaquamarine | #66CDAA | |
| mediumblue | #0000CD | mediumorchid | #BA55D3 | |
| mediumpurple | #9370DB | mediumseagreen | #3CB371 | |
| mediumslateblue | #7B68EE | mediumspringgreen | #00FA9A | |
| mediumturquoise | #48D1CC | mediumvioletred | #C71585 | |
| midnightblue | #191970 | mintcream | #F5FFFA | |
| mistyrose | #FFE4E1 | moccasin | #FFE4B5 | |
| navajowhite | #FFDEAD | navy | #000080 | |
| oldlace | #FDF5E6 | olive | #808000 | |
| olivedrab | #6B8E23 | orange | #FFA500 | |
| orangered | #FF4500 | orchid | #DA70D6 | |
| palegoldenrod | #EEE8AA | palegreen | #98FB98 | |
| paleturquoise | #AFEEEE | palevioletred | #DB7093 | |
| papayawhip | #FFEFD5 | peachpuff | #FFDAB9 | |
| peru | #CD853F | pink | #FFC0CB | |
| plum | #DDA0DD | powderblue | #B0E0E6 | |
| purple | #800080 | red | #FF0000 | |
| rosybrown | #BC8F8F | royalblue | #4169E1 | |
| saddlebrown | #8B4513 | salmon | #FA8072 | |
| sandybrown | #F4A460 | seagreen | #2E8B57 | |
| seashell | #FFF5EE | sienna | #A0522D | |
| silver | #C0C0C0 | skyblue | #87CEEB | |
| slateblue | #6A5ACD | slategray | #708090 | |
| snow | #FFFAFA | springgreen | #00FF7F | |
| steelblue | #4682B4 | tan | #D2B48C | |
| teal | #008080 | thistle | #D8BFD8 | |
| tomato | #FF6347 | turquoise | #40E0D0 | |
| violet | #EE82EE | wheat | #F5DEB3 | |
| white | #FFFFFF | whitesmoke | #F5F5F5 | |
| yellow | #FFFF00 | yellowgreen | #9ACD32 |
JRFontNotFoundException
Cuando al ejecutar un report nos encontramos con el siguiente error:
Mensaje: Font ‘Arial’ is not available to the JVM. See the Javadoc for more details.
Excepcion: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font ‘Arial’ is not available to the JVM. See the Javadoc for more details.
Si no queremos añadir un jar con la fuente (Arial en este caso). Una de las formas que se puede emplear para corregirlo consiste en, simplemente, añadirle la propiedad
net.sf.jasperreports.awt.ignore.missing.font = true
Con esto evitamos que lance la excepción ya que sustituirá la fuente Arial por otra que sí esté disponible.
Nota: Más información aquí.
Cómo unir, separar y/o desproteger PDFs?
Si no te acuerdas de la contraseña que le has puesto a algún pdf que hayas creado, hay diversas herramientas por la red que puedes utilizar. Entre ellas está el PDF Unlocker. Lo he probado con el windows xp y va muy bien.
También puedes encontrar herramientas para unir varios pdfs en uno o para separar uno en varios. Ya sea via web: http://www.ilovepdf.com/es/ o mediante una aplicación como es con PDF Split and Merge 2.2.1 En particular esta última opción me gusta más.
TCPMON
TCPMON es un sniffer que permite visualizar los paquetes enviados por la red de una forma muy sencilla. Sobretodo, es muy útil cuando se quieren detectar problemas con Servicios Web.
En esta página hay un tutorial bastante completo sobre ello.
Sólo añadir que el tcpmon se encuentra incluido en axis. Por lo tanto, se puede lanzar simplemente ejecutando desde la consola:
java -cp axis.jar org.apache.axis.utils.tcpmon
(Nota: axis.jar está en AXIS_HOME/lib)
Tamaño de memoria del Tomcat
Para modificar el tamaño de la memoria debemos ir a:
(Windows)
$TOMCAT_HOME\bin\catalina.bat y añadir: set CATALINA_OPTS=”-Xms512m -Xmx512m”
(Linux)
$TOMCAT_HOME\bin\catalina.sh y añadir: export CATALINA_OPTS=”-Xms512m -Xmx512m”
Nota: El 512 se corresponde con el total de memoria a utilizar.
Transacciones con Spring AOP (Forma declarativa con un fichero xml)
El tratamiendo de las transacciones mediante Spring AOP puede realizarse de varias formas. O bien, de forma programática o bien de forma declarativa (ya sea con anotaciones o con fichero xml):
1/ Si se hace de forma programática, las transacciones, deben controlarse en las distintas clases. Esto puede llegar a resultar bastante engorroso en aplicaciones relativamente grandes.
2/ Si se hace de forma declarativa con anotaciones estaríamos en la misma situación ya que las transacciones se definen dentro de las propias clases como antes, eso sí, de una forma más limpia.
3/ Si se hace de forma declarativa con un fichero xml se puede poner un punto de corte (pointcut) sobre la capa manager que abarque a todas las clases pertenecientes a ella. Y mediante un
Para usar esta tercera forma nos pide aparte un par de librerías de Aspectj. Obtenidas p.e. de maven, de la siguiente forma:
org.aspectj
aspectjrt
1.5.4
org.aspectj
aspectjweaver
1.5.4
Un ejemplo sencillo de uso, con hibernate:
Nota: Aquí hay bastante más información para consultar http://static.springsource.org/spring/docs/2.5.x/reference/aop.html
Para ver las sesiones abiertas en oracle
SELECT username, status, sid, serial# FROM v$session;
Así, para ver únicamente las sesiones abiertas con el usuario que se está utilizando en la aplicación. Sería:
SELECT * FROM v$session WHERE username LIKE ‘XXXXXXX’;
(Nota: Se deben tener permisos de SYS.)
Cambiar el puerto del JBoss
Para cambiar el puerto bajo el que corre JBoss. Se debe modificar el archivo server.xml.
Concretamente la línea que pone:
...
Nota: El archivo server.xml se puede encontrar en el jbosweb. Algo así:
/server/default/deploy/jbossweb.sar/server.xml
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places


