Professional Documents
Culture Documents
AA02
Programacin Bsica y Programacin Orientada a Objetos
HERRAMIENTAS DE PROGRAMACIN
Lenguaje: Java / IDE: NetBeans
Programacin de Mtodos
CONTROLES JAVA
JFrame
jLabel
jTextField
jButton
jPanel
jRadioButton
jButtonGroup
jComboBox
jFormattedTextField
jSpinner
jCheckBox
switch <variable> {
case <opcin 1>:
<conj. instr. 1>;
break;
case <opcin 2>:
<conj. instr. 2>;
break;
case <opcin 3>:
<conj. instr. 3>;
break;
case <opcin N>:
<conj. instr. N>;
break;
default:
<conj. instr. N>;
}
Control: jComboBox
Ejemplo:
case "Francesa":
descuento = (float) 25.00;
break;
case "Japonesa":
descuento = (float) 30.00;
break;
default:
descuento = (float) 0.00;
}
TextDescuento.setValue(descuento);
}
Control: jFormattedTextField
Explicacin:
Mscara de Formato: # y 0
25
##.## 25
##.00 25
25.5
##.## 25.5
##.00 25.50
##.#0 25.50
Mtodos de jFormattedTextField:
jTextField1.getText();
jFormattedTextField1.getValue();
jTextField1.setText();
jFormattedTextField1.setValue();
Los meses son representados desde 0 hasta 11, as Enero es 0 y Diciembre es 11.
Los das son normalmente representados desde 1 al 31.
Las horas desde 0 a 23.
Los minutos van desde 0 a 59.
Los segundos normalmente van desde 0 hasta 59. (Excepcionalmente pueden existir los
segundos 60 y 61 para los aos bisiestos).
Ejemplo 01
En el ejemplo que vamos a dar a continuacin veremos cmo se puede usar la clase Date
para representar una fecha determinada. Aprovechando que implementa la interfaz
Comparable<Date>, compararemos 2 fechas para saber cul va antes o despus:
// Ejemplo Clase Date
import java.util.Date;
public class Programa {
public static void main (String []args)
El constructor que hemos utilizado es uno de los disponibles, en concreto Date (int year,
int month, int day, int hrs, int min, int sec) donde el primer nmero representa el ao, el
segundo el mes, el tercero el da, el cuarto las horas, el quinto los minutos y el sexto los
segundos.
Al compilar nuestro Programa en BlueJ (otro IDE para Java) nos saldr probablemente un
mensaje alertando del uso de mtodos deprecados como ya hemos comentado
anteriormente:
Como podemos observar en la salida, imprimimos las fechas en varios formatos tanto la
fecha 1, como la fecha 2. El primero es el formato local donde se representa en este caso
las fechas con el formato del pas donde nos encontremos. Esto se debe a que en tiempo de
ejecucin se recupera el formato de fecha correspondiente al ordenador donde se est
ejecutando la aplicacin mediante una propiedad de la mquina virtual de java. Si estamos
en Espaa, recuperaremos la hora de Espaa y si estamos en Mxico la de Mxico, en Chile
la de Chile, etc.
En algunos casos nos interesa crear una fecha partiendo de un String, para ello podemos
utilizar el constructor utilizando la cadena String, pero si la fecha introducida en este caso
no sigue el formato local deberemos de utilizar la clase DateFormat para parsear
(transformar) el String y poder crear la fecha Date correspondiente.
El segundo par de formatos es el formato GMT donde podemos observar que se muestra con
2 horas menos en la salida con BlueJ (diferencia entre la hora local de Espaa que es donde
se hizo el programa y la hora GMT) y 5 horas ms en NetBeans (diferencia entre la hora local
de Per que es donde se hizo este programa y la hora GMT). Mientras que el formato tercero
es el que por defecto muestra Date.
Por ltimo observamos cmo podemos comparar dos fechas, utilizando los mtodos before
o after (en este caso) adems podramos haber utilizado por supuesto el mtodo
compareTo.
Ejemplo 02
Un ejercicio interesante puede ser el calcular la diferencia en das entre dos fechas dadas,
as vamos a realizar este ejercicio:
Nota: No todos los mtodos de la clase Date estn deprecados pero s bastantes de ellos,
por eso se recomienda utilizar para versiones de Java previas a la 8 la
clase DateFormat para formatear y parsear cadenas String a fechas y usar la
clase Calendar para conversiones de fechas y sus campos. Para versiones Java a partir de
la 8 se recomienda usar las clases del paquete java.time.
Paquete java.time
Java.time es un nuevo paquete que existe en Java 8.Este paquete es una extensin a las
clases java.util.Date y java.util. Calendar que vemos un poco limitado para manejo de
fechas, horas y localizacin.
Las clases definidas en este paquete representan los principales conceptos de fecha - hora,
incluyendo instantes, fechas, horas, periodos, zonas de tiempo, etc. Estn basados en el
sistema de calendario ISO, el cual el calendario mundial de-facto que sigue las reglas del
calendario Gregoriano.
Cada instancia de fecha y hora se compone de campos. Para el acceso de nivel inferior a
los campos consulte el paquete java.time.temporal. Cada clase incluye soporte para la
visualizacin y anlisis de todo tipo de fechas y horas. Consulte el paquete
java.time.format para opciones de personalizacin.
El paquete java.time.chrono contiene el API para calendario localizado (neutral):
ChronoLocalDate, ChronoLocalDateTime, ChronoZonedDateTime y Era. Esto es para uso de
aplicaciones que necesitan utilizar calendarios localizados. Se recomienda que las
aplicaciones utilicen la norma ISO-8601 de las clases de fecha y hora de este paquete a
travs de los lmites del sistema, como a la base de datos o en toda la red. La API neutral
calendario debe reservarse para la interaccin con los usuarios.
Fechas y horas
Instant: es esencialmente una marca de tiempo numrico. La instantnea actual puede ser
recuperada de un Clock Esto es til para la tala y la persistencia de un punto en el tiempo
y en el pasado ha sido asociado con almacenar el resultado de System.currentTimeMillis()
LocalDate: almacena una fecha sin hora. Esto almacena una fecha como '2010-12-03' y
podra ser utilizado para almacenar un cumpleaos.
LocalTime: almacena un tiempo sin una fecha. Esto almacena un momento como '11: 30 'y
podra ser utilizado para almacenar una abertura o cierre.
LocalDateTime: almacena una fecha y hora. Este almacena una fecha-hora como "2010-1203T11: 30 '.
ZonedDateTime: almacena una fecha y hora con un huso horario. Esto es til si desea
realizar clculos precisos de fechas y horas, teniendo en cuenta la ZoneId como "Europa /
Pars". Donde sea posible, se recomienda utilizar una clase ms simple sin un huso horario. El
uso generalizado de zonas horarias tiende a aadir una considerable complejidad a una
aplicacin.
Duracin y Perodo
Ms all de las fechas y horas, la API tambin permite el almacenamiento de los perodos y
duraciones de tiempo. Un Duration es una simple medida de tiempo a lo largo de la lnea
de tiempo en nanosegundos. Un Period expresa una cantidad de tiempo en unidades
significativas para los seres humanos, como aos o das.
Ejemplos:
Clases de fecha
Las clases de fecha como el java.time.LocalDate manejan la fecha, pero, a diferencia del
java.util.Date, es que es solo trabaja fecha, y no hora. Esto nos permitir manipular la
fecha para registrar fechas especficas como el da de cumpleaos o de matrimonio. Aqu
unos ejemplos:
LocalDate date = LocalDate.of(1999, Month.AUGUST, 23);
DayOfWeek dia=date.getDayOfWeek();
System.out.printf("El da que conoc a quien es mi esposa fue el %s y fue
un %s%n",date,dia);
Clase de Hora
La clase java.time.LocalTime es similar a las otras cosas que comienza con el prefijo Local,
pero se centra nicamente en la hora. Esta clase es muy til para representar horas y
tiempos de un da, tales como la hora de inicio de una pelcula o el horario de atencin de
una biblioteca. Se centra nicamente en la hora de un da cualquiera, pero no en una fecha
especfica Se entiende? Con el java.util.Date solo podemos manipular la hora de un da de
un ao en especial, de una zona de horario en especial, pero con el LocalTime solo nos
centramos en la hora en s, sin importar que da sea. Normalmente lo manipularamos con
una cadena y de ah hacemos raros algoritmos para saber si esa cadena est dentro de la
hora actual.
Aqu un pequeo ejemplo de su uso:
LocalTime justoAhora = LocalTime.now();
System.out.printf("En este momento son las %d horas con %d minutos y %d
segundos\n",justoAhora.getHour(),justoAhora.getMinute(),
justoAhora.getSecond());
Como se puede ver, no tiene nada que ver la fecha, solo se manipul la hora.
Clase de hora/fecha
La clase java.time.LocalDateTime manipula la fecha y la hora sin importar la zona horaria.
Esta clase es usada para representar la fecha (ao, mes, da) junto con la hora (hora,