Académique Documents
Professionnel Documents
Culture Documents
M. P. P. P. EDUCACIN SUPERIOR
INSTITUTO UNIVERSITARIO POLITECNICO SANTIAGO
MARIO
EXT. BARCELONA
INGENIERIA DE SISTEMAS
Programacin No Numrica I
Facilitador:
Prof. Aquiles
Participantes:
Csar Suniaga 6.950.899
Francisco Villarroel
Contenido.
Cadenas y Fechas.
Definicin.
Declaracin.
Comparacin
Copiar
Concatenar
Inicializacin.
Fecha:
Declaracin.
Inicializacin.
Operaciones con fecha.
Formatos de Fecha.
Clase Calendar.
Introduccin.
Cadenas.
Definicin:
En programacin,
una cadena
de
caracteres,
palabra,
ristra de
caracteres es
una
sucesin
un carcter.
Extraccin: Se trata de sacar fuera de una cadena una porcin de la misma segn su
Otra forma nos sugiere la inclusin de la cadena como argumento en el main y permite
usar internamente otras variables del mismo tipo, como es el caso de la variable titulo
public static void main (String args[]) {
int count;
String titulo;
boolean isAsleep;
...
}
En la declaracin de este al igual que otros tipos de variables en Java nos permite
encadenar nombres de variables con el mismo tipo, es decir declarar varias variables del
mismo tipo cadena con una sola instruccin:
String primerNombre, ultimonombre;
Igualmente permite dar a cada variable un valor inicial cuando la declare:
String ciudad = Pto. La Cruz;
-INICIALIZACION:
es el proceso mediante el cual se asigna un valor inicial al string declarado.
Ejemplos:
public String()
Inicializa un nuevo string sin caracteres.
public String(String value) Inicializa un nuevo string con valor dado
por value
Parmetros:
value - un String.
public String(char value[])
-Concatenacin de cadenas.
Es una ms de las operaciones que podemos realizar a las cadenas en java
Consiste en enlazar, relacionar, pegar, dos o ms cadenas o variables del tipo para formar un
conjunto mayor de caracteres o valores asociados a estas. El proceso de concatenacin lo
podemos observar de dos maneras:
1.
System.out.println(nombre.concat(apellido));
ambos casos daran como resultado lo siguiente:
Csar Suniaga
Comparar con ==
En java se pueden comparar cadenas de texto de varias maneras.
La primera y ms directa, es comparando con el ==. Esta comparacin no compara las
cadenas, sino si la instancia es la misma. As, por ejemplo
String cadena1 = new String("Hola");
String cadena2 = new String("Hola");
if (cadena1 == cadena2)
{
...
}
da false, las cadenas no son iguales, ya que son dos instancias -dos news- distintos.
El compilador de java es listo y si hacemos
String cadena1 = "Hola";
String cadena2 = "Hola";
if (cadena1 == cadena2)
{
...
}
dara true, ya que el compilador ve que tiene dos veces la misma cadena y crea una nica
instancia para ella -slo hace internamente un new-.
Equals()
Es el ms comn y el ms cmodo.
Ejemplo: if (cadena1.equals(cadena2))
Siendo cadena1 y cadena2 dos String se comparan ambas cadenas
CompareTo()
Se utiliza para la ordenacin de cadenas. El mtodo retorna 0 si ambas cadenas tienen el
mismo contenido, negativo si el String es menor que el parmetro que le pasamos y positivo
en el caso de ser mayor.
Ejemplo:
if (cadena1.compareTo(cadena2) == 0)
// cadena1 y cadena2 son iguales
else if (cadena1.compareTo(cadena2) < 0)
//cadena1 va antes que cadena2
Entre otras operaciones que permite el uso de cadenas en java podemos resaltar:
-LONGITUD DE UNA CADENA
La longitud de una cadena podemos obtener con el mtodo length() de la siguiente manera
String Palabra3="Midiendo mi longitud";
System.out.println(Palabra3.length());
System.out.println(Palabra3.charAt(7));
System.out.println(Palabra3.substring(12, Palabra3.length()));
El primer valor dentro de substring es 12 ya que la palabra longitud empieza en ese punto y
luego se pasa el valor Palabra3.length lo cual retornara la longitud de Palabra3 es decir hasta
el final as obteniendo la porcin que se desea obtener dara el mismo resultado si pondramos
System.out.println(Palabra3.substring(12, 20));
anotar tambin que para campos que almacenen solamente horas existen otras
clases para manejarlos.
En resumen ambas clases, slo se encargan de almacenar la cantidad de
milisegundos que han pasado desde las 12 de la noche del primero de enero de
1970 en el meridiano de Greenwich. Aqu vienen dos puntos importantes:
a) Si la fecha que almacena cualquiera de las clases es menor a las 00:00:00 enero
1 de 1970 GMT, su valor el milisegundos ser negativo.
b) La fecha es susceptible a la zona horaria. Por ejemplo en Colombia los
milisegundos no se empiezan a contar desde enero 1 de 1970, sino a partir de las
19:00 de diciembre 31 de 1969. Esto es importante por que si transportamos una
fecha relativa de una zona a otra, podemos llegar a tener problemas al confiar en
los milisegundos que se tienen; adems como la clase intenta representar el
"Tiempo Universal Coordinado" (UTC) suma 0.9 segundos cada ao para ajustar la
diferencia entre el reloj atmico y la velocidad de rotacin de la tierra. Esto se
traduce en que muy dificilmente podemos basarnos en valores como 0 o 60000
para realizar validaciones, pues esos milisegundos no son controlables cuando
creamos la instancia de una fecha, peor an, los milisegundos no son ni siquiera
iguales para la misma fecha en la misma zona horaria.
Ambas clases se pueden instanciar directamente mediante new(), pero la
clase java.sql.Date necesita un parmetro en el constructor: el tiempo en
milisegundos, as que las siguientes instrucciones son vlidas y se muestra la
declaracion e inicializacion:
java.util.Date fechaActual = new java.util.Date(); //Fecha actual del
sistema
java.sql.Date inicioLocal = new java.sql.Date(0); //Milisegundo cero
//tambin se puede crear una instancia de java.util.Date con
parmetros iniciales
java.util.Date otraFecha = new java.util.Date(1000); //El primer
segundo a partir del inicio
Al imprimir cada uno de estos valores se puede observar diferencia de formatos
entre java.sql.Date y java.util.Date. Se puede pasar de java.sql.Date a
java.util.Date de dos fomas, una de ellas es con una asignacin simple:
java.util.Date utilDate = null;
java.sql.Date sqlDate = new java.sql.Date(0);
utilDate = sqlDate;
/* aunque es java.util.Date,
si la imprimes tendr el formato de java.sql.Date, recordemos que
java.sql.Date hereda de
java.util.Date */
System.out.println(utilDate);
Tambin se pueden tomar los milisegundos de java.sql.Date y pasarlos al
constructor de java.util.Date:
java.util.Date utilDate = null;
java.sql.Date sqlDate = new java.sql.Date(0);
utilDate = new java.util.Date(sqlDate.getTime());
//esta vez se mostrar con el formato de java.util.Date
System.out.println(utilDate);
Para pasar de java.util.Date a java.sql.Date se deben tomar los milisegundos de la
primera y pasarlos al constructor de la segunda:
java.util.Date utilDate = new java.util.Date();
-Formatos de fecha
Convertir objetos de la clase String al formato Date de Java. La clase
SimpleDateFormat en Java puede parsear fechas contenidas en el formato de la clase
String. Ya que los objetos que representan fechas y horas no se puede mostrar o
imprimir sin convertirlo primero a una cadena que est en el formato correcto.
Locale
04/20/09
. En segundo lugar,
Cdigo de Ejemplo:
package beastieux.gui;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
JOptionPane.showMessageDialog(null, obj.getDate("2010-12-20"));
}
}
Otro ejemplo:
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
package org.kodejava.example.text;
import
import
import
import
java.text.DateFormat;
java.text.ParseException;
java.text.SimpleDateFormat;
java.util.Date;
3
1
4
1
5
1
}
6
}
1 }
7
1
8
1
9
-Lista de los patrones definidos que se pueden utilizar para dar formato a la fecha de toma de la
documentacin de la clase Java.
Carta
Ejemplos
Designador Era
AD
Ao
1996; 96
Mes en el ao
De julio, julio, 07
Semana en aos
27
Semana en meses
Da de ao
189
Da en el mes
10
Da de la semana en el mes
Da de la semana
Martes, mar
un
Am / pm indicador
PM
24
Hora de am / pm (0-11)
Hora de am / pm (1-12)
12
Minuto en horas
30
55
Milisegundo
978
Huso horario
Huso horario
-0800
getDay()
Devuelve el da de la semana.
getHours()
Retorna la hora.
getMinutes()
Devuelve los minutos.
getMonth()
Devuelve el mes (atencin al mes que empieza por 0).
getSeconds()
Devuelve los segundos.
getTime()
Devuelve los milisegundos transcurridos entre el da 1 de enero de 1970 y la fecha
correspondiente al objeto al que se le pasa el mensaje.
getYear()
Retorna el ao, al que se le ha restado 1900. Por ejemplo, para el 1995 retorna 95, para el
2005 retorna 105. Este mtodo est obsoleto en Netscape a partir de la versin 1.3 de
Javascript y ahora se utiliza getFullYear().
getFullYear()
Retorna el ao con todos los dgitos. Usar este mtodo para estar seguros de que funcionar
todo bien en fechas posteriores al ao 2000.
setDate()
Actualiza el da del mes.
setHours()
Actualiza la hora.
setMinutes()
Cambia los minutos.
setMonth()
Cambia el mes (atencin al mes que empieza por 0).
setSeconds()
Cambia los segundos.
setTime()
Actualiza la fecha completa. Recibe un nmero de milisegundos desde el 1 de enero de 1970.
setYear()
Cambia el ao recibe un nmero, al que le suma 1900 antes de colocarlo como ao de la
fecha. Por ejemplo, si recibe 95 colocar el ao 1995. Este mtodo est obsoleto a partir de
Javascript 1.3 en Netscape. Ahora se utiliza setFullYear(), indicando el ao con todos los
dgitos.
setFullYear()
Cambia el ao de la fecha al nmero que recibe por parmetro. El nmero se indica completo
ej: 2005 o 1995. Utilizar este mtodo para estar seguros que todo funciona para fechas
posteriores a 2000.
Como se puede apreciar, hay algn mtodo obsoleto por cuestiones relativas al ao 2000:
setYear() y getYear(). Estos mtodos se comportan bien en Internet Explorer y no nos dar
ningn problema el utilizarlos. Sin embrago, no funcionarn correctamente en Netscape, por
lo que es interesante que utilicemos en su lugar los mtodos getFullYear() y setFullYear(),
que funcionan bien en Netscape e Internet Explorer.
-Clase Calendar.
Consideraciones a tener en cuenta para realizar operaciones con la clase Calendar
1) Para definir una fecha se utiliza el mtodo set(), cuyo constructor viene sobrecargado con
diferentes parmetros.
Ejemplo :
01
02
03
04
05
06
07
08
/**
* Definiendo fechas
*/
System.out.println("[ Definiendo Fechas ]\n");
//Instancia a calendar
Calendar fecha = Calendar.getInstance();
01
02
03
04
05
06
07
08
09
/**
* Realizando Operaciones
*/
System.out.println("\n[ Operando con Fechas ]\n");
//Instancia a calendar
Calendar fecha = Calendar.getInstance();
10 //Sumando dias
System.out.println(String.format("Fecha antes de la suma de dias :
11
%1$tY-%1$tm-%1$td",
12
fecha.getTime()));
13 fecha.add(Calendar.DATE, 35);
System.out.println(String.format("He sumado 35 dias y ahora tengo :
14
%1$tY-%1$tm-%1$td",
15
fecha.getTime()));
16
17 //Restando meses
System.out.println(String.format("Fecha antes de la resta de anios :
18
%1$tY-%1$tm-%1$td",
19
fecha.getTime()));
20 fecha.add(Calendar.YEAR, -5);
System.out.println(String.format("He restado 5 anios y ahora tengo :
21
%1$tY-%1$tm-%1$td",
22
fecha.getTime()));
23
24 //Sumando horas
System.out.println(String.format("Fecha antes de la suuma de horas :
25
%1$tY-%1$tm-%1$td",
26
fecha.getTime()));
27 fecha.add(Calendar.HOUR, 1200);
System.out.println(String.format("He sumado 1200 horas y ahora tengo
28
: %1$tY-%1$tm-%1$td",
29
fecha.getTime()));
Salida
[ Operando con Fechas ]
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Salida
[ Comparando varias fechas ]
Fecha 1 : 2011-10-16
Fecha 2 : 2011-12-31
Fecha 3 : 2005-04-15
[ Resultados de la comparacion ]