9
UNIVERSIDAD AUTONOMA DEL CARIBE TRABAJO DE LAB. DE PROGRAMACION II ASIGNATURA: LAB. DE PROGRAMACION II PROFESOR: FABIAN JOSE TORRES RAMOS PRESENTADO POR: ANDRES FELIPE ALTAMAR RODRIGUEZ GRUPO: AD II SEMESTRE BARRANQULLA- ATLANTICO

Consulta Lab. De programacón II

Embed Size (px)

Citation preview

Page 1: Consulta Lab. De programacón II

UNIVERSIDAD AUTONOMA DEL CARIBE

TRABAJO DE LAB. DE PROGRAMACION II

ASIGNATURA: LAB. DE PROGRAMACION IIPROFESOR: FABIAN JOSE TORRES RAMOS

PRESENTADO POR:ANDRES FELIPE ALTAMAR RODRIGUEZGRUPO: ADII SEMESTRE

BARRANQULLA- ATLANTICO15-08-2013

Page 2: Consulta Lab. De programacón II

TRABAJO DE CONSULTA

Consultar:

Como formatear y redondear números en java. Como manejo el tiempo (time) y hora en java (pausar). Utilidades en java. Calendario y distancia entre dos fechas en java.

COMO REDONDEAR NUMEROS EN JAVA

Para redondear decimales en Java hacemos uso de la clase BigDecimal ya que por medio de sus métodos setScale (int newScale, RoundingMode roundingMode) podemos indicar el modo de redondeo y en cuantos decimales queremos redondear la cifra.

Ejemplo de redondeo de Decimales en Java:

1. import java.math.BigDecimal;  2. import java.math.RoundingMode;  3.   4. /** 5.  * 6.  * @author www.javafrikitutorials.com 7.  */  8. public class RedondearDecimales {  9.   10.     public static void main(String[] args) {  11.         //string de un numero decimal  12.         String decimal = "3.14159265358979323846";  13.         //paso el string a un BigDecimal  14.         BigDecimal bigDecimal = new BigDecimal(decimal);  15.         //con el metodo setScale(int newScale, RoundingMode roundingMode) 

del BigDecimal  16.         //establezco los parametros del redondeo, en este caso 4 el numero 

de decimales  17.         //RoundingMode.HALF_UP el modo de redondeo HALF_UP es de la mitad 

hacia arriba  

Page 3: Consulta Lab. De programacón II

18.         BigDecimal bigDecimalRedondeado = bigDecimal.setScale(4, RoundingMode.HALF_UP);  

19.         System.out.println("Decimal redondeado: " + bigDecimalRedondeado);  

20.     }  21. }  

COMO MANEJAR EL TIEMPO EN JAVA (TIMER)

La Clase Timer es utilizada en Java para lanzar eventos a intervalos específicos de tiempo, de manera repetitiva. Son muy usados para las animaciones y movimientos de objetos en los juegos de computadora. La utilización de un Timer involucra dos cosas: Indicar el intervalo de tiempo dentro del cual se repetirá determinada acción y registrar un Oyente o Listener quien será el encargado de ejecutar la acción que queremos sea repetida.

Java nos proporciona dos clases distintas que nos ayudan a esta tarea. Son las clases javax.swing.Timer y java.util.Timer. A ambas clases les decimos cada cuánto queremos el aviso (por ejemplo, un aviso cada segundo en el caso del reloj) y ellas se encargan de llamar a un método que nosotros hayamos implementado. El resultado es que ese método (el que pinta el segundero en la pantalla), se llamará cada cierto tiempo (una vez por segundo en el caso del reloj).

JAVAX.SWING.TIMER:

Page 4: Consulta Lab. De programacón II

Esta clase es más sencilla de usar. Basta con instanciarla pasándole cada cuanto tiempo (en milisegundos) queremos que nos avise y un ActioListener, cuyo método actionPerformed () se ejecutará periódicamente. Luego sólo hay que llamar al método start () cuando queramos que el Timer empiece a contar. El código puede ser similar a este:

EJ.

Timer timer =new Timer (tiempoEnMilisegundos, new ActionListener ()

{

Public void actionPerformed (ActionEvent e) }// Aquí el código que queramos ejecutar. } });...

timer. Start();

Tenemos también el método stop () que sirve para parar el Timer, setRepeats (boolean) para hacer que sea repetitivo o no, etc.

JAVA.UTIL.TIMER:

Esta clase es más general, tiene más opciones, pero es algo más compleja de usar. Para arrancarlo hay que llamar a alguno de los métodos schedule (). No voy a detallarlos todos porque para eso está la API, pero nos dan bastantes posibilidades. Podemos decirle cosas complejas, como por ejemplo, que "a partir del 22 de febrero de 2007, a las 17:00 empieza a darme avisos cada 5 minutos", o bien podemos decirle cosas sencillas, como "avísame una sola vez dentro de 5 minutos".

Dentro de los avisos repetitivos hay incluso dos opciones.

Page 5: Consulta Lab. De programacón II

*Con los métodos schedule (), si por ejemplo, el aviso es repetitivo cada segundo, es posible que el ordenador esté bastante ocupado haciendo otras cosas, con lo que el aviso nos puede llegar con un cierto retraso. Con esta opción el retraso se acumula de una llamada a otra. Si el ordenador está muy atareado y nos da avisos cada 1.1 segundos en vez de cada 1, el primer aviso lo recibimos en el segundo 1.1, el segundo en el 2.2, el tercero en el 3.3, etc., etc. Si hacemos nuestro reloj de esta forma, cogerá adelantos o retrasos importantes en poco tiempo.

* La otra opción son los métodos scheduleAtFixedRate (). Con estos métodos los avisos son relativos al primer aviso, de esta forma, si hay retraso en un aviso, no influye en cuando se produce el siguiente. Igual que antes, si el ordenador está muy ocupado y da avisos cada 1.1 segundos en vez de cada segundo, el primer aviso se recibirá en el segundo 1.1, el segundo en el 2.1, el tercero en el 3.1, etc. El retraso no se va acumulando. Está claro que para hacer un reloj, como es nuestro ejemplo, debemos usar la segunda forma (métodos scheduleAtFixedRate () en vez de schedule ()).

Ej.

// Clase en la que está el código a ejecutar TimerTask timerTask = new TimerTask () { public void run () { // Aquí el código que queremos ejecutar. } }; ....

// Aquí se pone en marcha el timer cada segundo. Timer timer = new Timer (); // Dentro de 0 milisegundos avísame cada 1000 milisegundos timer. ScheduleAtFixedRate (timerTask, 0, 1000);

Page 6: Consulta Lab. De programacón II

CALENDARIO Y DISTANCIA ENTRE DOS FECHAS EN JAVA.

En las clases java.util.Date y java.util.Calendar tienen métodos para calcular la diferencia de dos fechas en una unidad de tiempo como por ejemplo en horas, por eso es necesario convertir las fechas en su representación en mili-segundos para hacer los cálculos necesarios, EJ.

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

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

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

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 día = 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: Al inicializar el Calendar se restado uno al mes. Ésto se debe a que este parámetro empieza en cero, correspondiendo el cero a Enero, el uno a Febrero,...

Page 7: Consulta Lab. De programacón II

UTILIDADES EN JAVA

Java es un lenguaje de programación que se utiliza para diseñar programas y algoritmos para darle funcionalidad a miles de plataformas como e portátiles a centros de datos, de consolas de juegos a súper equipos científicos, de teléfonos móviles a Internet, ect…