Вы находитесь на странице: 1из 13

Laboratorio de Anlisis Numrico

Objetivos de la sesin 11 . Tiempo aproximado 30 min.0 Nmero de prcticas Teora: 12 Prctica: 12 Observaciones

ndice general SESI 11 TIMER PARAR EL TIEMPO FORMATO DE FECHA Y HORA DIFERE CIA E TRE FECHAS FORMATO DE MERO FORMATO DE FECHA Y HORA FECHA VALIDA MODIFICAR FECHA Y HORA DEL SISTEMA 1 1 2 3 4 5 6 9 10

SESIN 11
En esta breve sesin vamos a ver como trabajar con la hora y la fecha del sistema, mostrar informacin de esta, realizar clculos y trabajar con ella como nos interese.

Timer
Este control funciona independientemente del resto de objetos que tengamos en nuestra aplicacin. Con este control podemos hacer que una serie de instrucciones se repitan cada cierto tiempo. Escribo tiempo entre comillas, ya que no contabiliza intervalos de tiempo reales, aunque se le aproxima mucho. Utilizando este control podremos realizar aplicaciones en las que deseemos realizar unas instrucciones determinadas cada cierto tiempo. A este espacio de tiempo vamos a llamarlo intervalo. Este intervalo es una propiedad del objeto Timer llamada Interval, que nos cuenta el nmero de milisegundos que transcurren entre los eventos Timer. Para terminar de explicar este nuevo objeto vamos a crear una pequea aplicacin la cual nos servir para mostrar la fecha actual del sistema.

Prctica 1
1. Abre un nuevo proyecto. 2. Haz doble clic sobre el objeto: de la barra de herramientas.

Observa como en el formulario te aparece un pequeo objeto similar al que has oprimido. Este objeto solo es visible en tiempo de edicin y no de ejecucin. En el momento en el que pongas en funcionamiento la aplicacin este elemento no ser visible. 3. Accede a las propiedades del objeto Timer. 4. Modifica la propiedad interval y escribe el valor 1000. Con este intervalo conseguiremos que las instrucciones que escribamos dentro del evento Timer de este objeto se realicen cada segundo (1 segundo = 1000 milisegundos). 5. Modifica la propiedad (Nombre) y escribe: Tiempo. Ahora insertaremos un Label el cual nos servir para mostrar la hora del sistema. 6. Inserta un objeto Label.

Anlisis Numrico 2013-1 Pgina 1

zoowars

7. Modifica el tamao de letra de este objeto, hasta conseguir que sea visible. 8. Cambia la propiedad (Nombre) de este objeto y escribe: Reloj. 9. Sita el objeto Reloj centrado en el formulario. El formulario no debe ser muy grande. Recuerda que el objeto Timer no se ver en el momento que estemos ejecutando la aplicacin. 10. Accede al evento Timer del objeto Tiempo (para ello slo debers hacer doble clic sobre el objeto Timer que est situado en el formulario). 11. Escribe la siguiente instruccin: Reloj.Caption = Time Con esta instruccin lo que conseguiremos es que en el objeto Reloj aparezca la hora del sistema. Esto lo conseguimos con la funcin Time. 12. Realiza una ejecucin de prueba. Observa como justamente al ponerse en funcionamiento la aplicacin aparece el contenido del objeto Reloj y hasta que no transcurre un segundo no aparece la hora del sistema. Esto es debido a que el evento Timer se pone en funcionamiento en el momento en el que lo hace la aplicacin y hasta que no transcurren 1000 milisegundos (indicado en la propiedad Interval) no se realiza la instruccin que hay escrita en el evento Timer. Observa como el reloj se actualiza cada segundo. Nosotros podremos seguir trabajando con esta aplicacin o con cualquier otra y el evento Timer continua funcionando.

Parar el tiempo
Si en algn momento de la aplicacin deseas que el objeto Timer se detenga deberemos cambiar la propiedad Enabled a False. Vamos a realizar algunos cambios en nuestra aplicacin para ver como funcionaria esta propiedad. 13. Accede al evento click del objeto Reloj. 14. Escribe la siguiente instruccin: Tiempo.Enabled = Not (Tiempo.Enabled) Recuerda que la instruccin Not nos sirve para invertir el valor de la propiedad que escribamos entre parntesis. En este caso si el valor es Verdadero pasar a Falso y viceversa. 15. Realiza otra ejecucin de prueba. 16. Da un clic sobre la hora que se muestra en nuestra aplicacin. 17. Observa como el tiempo se ha detenido.
Anlisis Numrico 2013-1 Pgina 2
zoowars

18. Da nuevamente otro clic. Para que el tiempo contine. 19. Detn la ejecucin y guarda la aplicacin con el nombre que desees. Ahora que ya hemos visto como hacer que aparezca la hora del sistema vamos a ver que formatos podemos aplicarles.

Formato de Fecha y hora


Para ver los diferentes formatos con los que podemos trabajar, vamos a crear una pequea aplicacin que nos contar los segundos, minutos, horas y das que faltan desde el de hoy hasta el da 1/1/2020. Tambin mostraremos la fecha del sistema y la hora en formatos diferentes. Para mostrar la fecha del sistema utilizaremos la instruccin Now. Con esta instruccin conseguimos obtener tanto la fecha como la hora del sistema. Vamos a empezar a disear la nueva aplicacin. En un principio no perderemos tiempo en realizar un diseo bonito, slo en hacer que la aplicacin funcione correctamente.

Prctica 2
1. Inicia un nuevo proyecto. La aplicacin que vamos a crea deber tener aproximadamente esta apariencia. Vamos a ir paso por paso.

Vamos a crear los objetos que no se modificarn durante la ejecucin de la aplicacin y que nos servirn como etiquetas. 2. Debers insertar 7 objetos Label, a los cuales no debers cambiarles la propiedad Name, simplemente el Caption. Colcalos en el formulario en la misma posicin y con el mismo Caption que aparece en el formulario de muestra. Estos objetos son: Hasta el ao 2020 faltan:, Segundos, Minutos, Horas, Das, Da actual y Hora actual.
Anlisis Numrico 2013-1 Pgina 3
zoowars

Los dems objetos que aparecen en el formulario tambin son Labels pero en un principio no debern tener ningn tipo de valor en la propiedad Caption. El caption que aparece en cada uno de ellos vendr dado por el calculo que realizaremos entre la fecha actual y el inicio del ao 2020. En la siguiente imagen aparecen los nuevos objetos Label marcados con una elipse y la propiedad (Nombre) que debers asignarles. Segundos Minutos

Horas Das

Hoy HoyHora

3. Inserta los elementos que hemos comentado anteriormente que aparecen remarcados en una elipse. 4. Inserta un objeto Timer. 5. Cambia la propiedad (Nombre) de este objeto y ponle: Tiempo. 6 Accede a la propiedad Interval y cambia su valor a 1000. Vamos a introducir el cdigo lnea a lnea para ir explicando los diferentes formatos con los que iremos trabajando. 7. Accede al evento Timer y escribe la siguiente lnea de cdigo: Segundos.Caption = Format(DateDiff("s",Now,"1/1/2020"), _ "##,###") Vamos a comentar un poco como funciona.

Diferencia entre fechas


Primero que todo vamos a ver la estructura de la instruccin que nos calcula la diferencia entre dos fechas dadas. DateDiff. DateDiff (Intervalo, Fecha final, Fecha inicial)

Anlisis Numrico 2013-1 Pgina 4

zoowars

En Intervalo deberemos especificar como deseamos que la computadora calcule la diferencia entre ambas fechas. Este intervalo deber aparecer entre comillas. En la tabla siguiente mostramos los posibles valores que podemos calcular y lo que deberemos escribir entre comillas para que Visual Basic realice el clculo: Intervalo yyyy q m y d w ww h n s Calculo Ao Trimestre Mes Da del ao Da Da de la semana Semana Hora Minuto Segundo

En este primer caso queremos que la diferencia aparezca expresada en segundos, con lo que escribiremos s. El intervalo que deseamos calcular es desde la fecha actual (Now) y el inicio del ao 2020 (1/1/2020). Por lo tanto la instruccin quedar de la siguiente forma: DateDiff("s",Now,"1/1/2020") Observa que tanto el intervalo como la fecha final aparecen entre comillas.

Formato de nmero
Por otro lado haremos que el valor obtenido nos aparezca con formato de miles, para ello utilizaremos la instruccin Format comentaremos a continuacin. Format(Expresin, formato) En Expresin deberemos colocar el objeto al cual queremos aplicar el formato y en Formato indicaremos el formato que queremos aplicar. Para hacer que un determinado objeto tenga un formato definido por el usuario deberemos utilizar diferentes caracteres. Estos caracteres sern los siguientes: Carcter Uso 0 Nos muestra un dgito o un cero. Si el objeto al cual le aplicamos este formato no tiene ningn valor, nos aparecer un 0. Si tiene algn valor nos aparecer el valor del objeto. # Muestra un dgito o nada. . Marcador de posicin decimal. , Marcador de millares. : Separador de hora.
Anlisis Numrico 2013-1 Pgina 5
zoowars

Separador de fecha. Estos son los caracteres para aplicar formato ms utilizado. Vamos a ver algunos ejemplos de utilizacin de estos caracteres.

Imagina que tenemos una variable llamada Nmero y tiene como valor 12345. Si le aplicamos estos formatos el nmero quedar de la siguiente forma: Formato ###### ##,### ##,###.## ##,###.00 #####.00 Resultado 12345 12.345 12.345 12.345,00 12345,00

Vamos a ver como hemos aplicado lo explicado de la funcin Format a nuestro ejemplo actual. Nosotros deseamos que los segundos aparezcan con separadores de millares y sin decimales con lo que utilizaremos el siguiente formato: ##,### El cdigo quedara de la siguiente forma: Segundos.Caption = Format(DateDiff("s",Now,"1/1/2020"), "##,###") 8. Realiza una ejecucin de prueba y observa como al pasar un segundo aparece un nmero que nos indica los segundos que faltan desde este momento hasta el principio del ao 2020. Vamos a insertar las lneas de cdigo que nos calcularn los minutos, horas y Das hasta el ao 2020. 9. Accede al evento Timer y escribe las siguientes lneas: Minutos.Caption = Format(DateDiff("n", Now, "1/1/2020"), _ "##,###") Horas.Caption = Format(DateDiff("h", Now, "1/1/2020"), _ "##,###") Dias.Caption = Format(DateDiff("d", Now, "1/1/2020"), _ "##,###") Observa como utilizamos el valor n para que muestre los minutos, la h para mostrar las horas y finalmente la d para mostrar los das. 10. Realiza una ejecucin de prueba y podrs comprobar como se realiza el clculo. Ahora vamos a ver que formatos deberemos aplicar para que se nos muestre diferente informacin a partir de la fecha actual del sistema.

Formato de fecha y hora

Anlisis Numrico 2013-1 Pgina 6

zoowars

Para aplicar formatos a la fecha, tambin utilizaremos la instruccin Format que vimos en apartados anteriores, pero con nuevos caracteres que nos ayudarn a obtener informacin determinada de una fecha. La sintaxis que deberemos aplicar para obtener diferentes formatos a una fecha es exactamente la misma que la que vimos en el apartado Formato de nmero. Format(Expresin, formato) Vamos a mostrar una tabla donde explicaremos los caracteres y el uso que tienen estos. Carcter d dd ddd dddd ddddd dddddd Uso Nos muestra el da como un nmero sin ceros a la izquierda. Nos muestra el da como un nmero con un cero a la izquierda. Muestra el da de la semana con abreviacin (Lun Dom). Muestra el da de la semana como nombre completo (Lunes Domingo). Muestra la fecha completa (da, mes y ao), con el formato que tengamos marcado en la configuracin de Windows (11/2/98). Muestra la fecha completa (da, mes y ao), con el formato que tengamos marcado en la configuracin de Windows (sbado, 01 de enero de 2000) Muestra el da de la semana con un nmero. Muestra la semana del ao como un nmero. Muestra el nmero del mes sin cero a la izquierda. Muestra el nmero del mes con un cero a la izquierda. Muestra el nombre del mes con abreviacin (Ene Dic). Muestra el nombre del mes completo (Enero Diciembre). Muestra el nmero del trimestre. Muestra el da del ao como un nmero (1 366). Muestra el ao como un nmero de dos dgitos (00 99). Muestra el ao como un nmero de cuatro dgitos (100 9999). Muestra la hora como un nmero sin ceros a la izquierda. Muestra la hora como un nmero con ceros a la izquierda. Muestra el minuto como un nmero sin ceros a la izquierda. Muestra el minuto como un nmero con ceros a al izquierda. Muestra el segundo como un nmero sin ceros a la izquierda. Muestra el segundo como un nmero con ceros a la izquierda. Muestra la hora con formato completo (hh:mm:ss), segn el formato que tengamos marcado en la configuracin de Windows.

w ww m mm mmm mmmm q y yy yyyy h hh n nn s ss ttttt

Vamos a ver como podemos mostrar informacin de la fecha y hora actual utilizando formatos vistos en la tabla anterior. Podemos realizar mltiples combinaciones para conseguir la misma informacin. Todas son correctas mientras obtengamos la informacin deseada. Empezaremos por mostrar la fecha con el siguiente formato: (sbado), 01 de enero del ao 2020. Como lo que vamos a realizar es una concatenacin de diferentes elementos deberemos utilizar el smbolo & entre ellos para que aparezcan todos seguidos dentro del mismo objeto.
Anlisis Numrico 2013-1 Pgina 7
zoowars

11. Accede al evento Timer. Las instrucciones las ponemos dentro de este evento para que en todo momento estn actualizadas tanto la fecha como la hora. 12. Escribe la siguiente instruccin: Hoy.Caption = "(" & Format(Now, "dddd") & "), " & _ Format(Now, "d") & " de " & Format(Now, "mmmm") & " del ao " & Format(Now, "yyyy") Vamos a explicar las diferentes partes de esta concatenacin: en primer lugar hacemos que aparezca un parntesis, despus utilizando el formato dddd hacemos que aparezca el nombre del da de la semana en el que nos encontramos. Enseguida volvemos a hacer que aparezca el parntesis para cerrar y una coma. Despus aadimos el da en el que nos encontramos, la palabra de, enseguida el nombre del mes, a continuacin las palabras del ao y el ao en el que nos encontramos. Como ya he dicho anteriormente, para mostrar esta informacin podramos hacerlo de otras formas ms sencillas, pero as hemos visto varios formatos aplicados en una misma lnea de cdigo. 13. Intenta modificar esta lnea de tal forma que aparezca la misma informacin pero utilizando diferentes formatos. 14. Realiza una ejecucin de prueba y observa todo lo que hemos realizado hasta el momento. Ahora vamos a ver que formato podemos aplicar para mostrar la fecha del sistema. En este caso queremos obtener informacin de este tipo: 18 horas 30 minutos y 45 segundos. Aqu tambin utilizaremos los caracteres de concatenacin para los diferentes elementos que componen la fecha. 15. Debajo de la ltima instruccin que aparece en el evento Timer escribe la siguiente lnea: HoyHora.Caption = Format(Now, "hh") & " horas " & _ Format(Now, "nn") & " minutos y " & Format(Now, "ss") & " _ segundos" Vamos a explicar la siguiente concatenacin: en primer lugar insertamos la hora del sistema, despus aadimos el texto horas seguido de los minutos, a continuacin ponemos el texto minutos y junto con los segundos y por ltimo la palabra segundos. De esta forma conseguimos tener el texto deseado, que nos muestra la hora del sistema. 16. Realiza una ejecucin de prueba para ver como funciona nuestra aplicacin. 17. Detn la ejecucin del programa.

Anlisis Numrico 2013-1 Pgina 8

zoowars

18. Guarda el proyecto con el nombre que desees.

Fecha valida
En muchas ocasiones nos puede interesar introducir una fecha para que el ordenador trabaje con ella. Pero al escribirla nos deberemos asegurar que el usuario ha escrito una fecha correcta y que adems existe, sino se producira un error de ejecucin. Vamos a ver como podemos solucionar este problema. Imagina que deseamos realizar una aplicacin que nos sirva para conocer cuantos das han pasado desde le fecha de nuestro nacimiento y el da de hoy.

Prctica 3
1. Inicia un nuevo proyecto. 2. Inserta un TextBox al que debers llamar: Nacimiento. Aqu escribiremos la fecha de nacimiento. 3. Inserta un Label al que llamaremos: Diferencia. En este objeto aparecern los das que han transcurrido desde la fecha del nacimiento hasta el da de hoy. 4. Crea un CommandButton. Llmalo: Calcular. Al oprimir este botn se deber calcular la diferencia. Vamos a escribir la instruccin que debers colocar dentro del evento Click del botn Calcular. Diferencia.Caption = DateDiff("d", Nacimiento.Text, Now) Observa como hemos utilizado la instruccin explicada anteriormente (DateDiff) la cual nos ayudar a calcular la diferencia. En este caso hemos marcado que deseamos obtener la diferencia en das d entre Nacimiento.Text y la fecha actual Now. 5. Escribe el cdigo en su lugar. 6. Realiza una ejecucin de prueba. 7. Escribe la fecha: 11/2/70 y pulsa el botn Calcular. Observa como nos aparece el nmero de das que han pasado hasta el da de hoy. 8. Borra la fecha que hemos introducido anteriormente y oprime Calcular. Nos aparecer un error con el texto: No coinciden los tipos esto nos indica que no se ha podido realizar la operacin debido a que los

Anlisis Numrico 2013-1 Pgina 9

zoowars

formatos de las dos partes de la orden DateDiff no tienen el mismo formato. Cmo podemos mirar si el usuario introduce una fecha correcta antes de realizar el clculo? La respuesta es muy sencilla. Nuestro problema se soluciona utilizando IsDate(Valor) la cual nos devuelve Verdadero en caso que el texto introducido sea una fecha o Falso en caso que no lo sea. Vamos a ver como podemos aplicar esto en nuestro ejemplo. 9. Accede al evento Click del botn Calcular. 10. Escribe las siguientes lneas de cdigo: If IsDate(Nacimiento.Text) = False Then MsgBox "No es una fecha vlida", 0, "Error" Exit Sub End If Diferencia.Caption = DateDiff("d", Nacimiento.Text, Now) A continuacin comentaremos las lneas de cdigo que hemos insertado. Al oprimir el botn Calcular nosotros queremos que el programa realice la diferencia entre las dos fechas. Pero antes de realizar el clculo deberamos mirar si la fecha introducida por el usuario es correcta o no. Para ello utilizamos la instruccin IsDate(Nacimiento.text) en un If. Si el valor que nos devuelve esta instruccin es False procedemos a mostrar un mensaje diciendo que la fecha no es vlida y salimos del evento sin que se produzca ningn tipo de clculo. En cambio si la fecha es correcta, pasamos a realizar la diferencia entre ambas fechas. 11. Realiza una ejecucin de prueba. 12. Introduce una fecha no vlida. Observa como el programa nos avisa que la fecha introducida no es correcta. 13. Acepta la ventana. 14. Introduce una fecha correcta y observa el resultado. Como has podido ver nuestro programa calcula la diferencia en das entre la fecha introducida por el usuario y la fecha del sistema. Pero, qu ocurrira si la fecha del sistema no es la correcta?. Vamos a ver como podemos modificar la fecha actual del sistema desde un programa de Visual Basic.

Modificar fecha y hora del sistema

Anlisis Numrico 2013-1 Pgina 10

zoowars

Para ver como podramos hacerlo vamos a insertar dos nuevos que nos servirn, para editar y aceptar la nueva fecha dentro de este mismo formulario. Normalmente esto se realiza en otro formulario, donde el usuario pueda cambiar ciertas configuraciones del programa o incluso del sistema. 15. Inserta un TextBox al que llamars: NuevaFecha. 16. Inserta un CommandButton y le llamas: FechaSistema. En este ejemplo no vamos a insertar las lneas que deberan comprobar si la fecha introducida es correcta o no. Simplemente vamos a mirar la instruccin que utilizaramos para modificar la fecha del sistema. Como hemos visto en otros apartados de esta misma sesin, para poder visualizar la fecha del sistema utilizamos la instruccin Date, mientras que para consultar la hora del sistema utilizamos Time. Podramos decir que ambas instrucciones son como variables que contienen unos datos que los actualiza directamente Windows. Por lo tanto al ser variables se podrn modificar como hacemos con cualquier otra. 17. Accede al evento Click del botn FechaSistema. 18. Escribe la siguiente instruccin: Date = NuevaFecha.Text Observa como hacemos una asignacin del contenido del objeto NuevaFecha directamente a Date. 19. Modifica el contenido del evento Click del objeto FechaSistema para que se compruebe que la fecha introducida por el usuario es correcta. 20. Inicia una ejecucin de prueba. 21. Indica una nueva fecha para el sistema. 22. Pulsa el botn FechaSistema. Aparentemente no ha ocurrido nada, pero si accedes a la fecha del sistema podrs observar como se ha modificado. 23. Intenta hacer los pasos necesarios para modificar la fecha del sistema. Al modificar la fecha y la hora del siempre debers comprobar que el usuario a introducido un formato correcto, si no es as en la aplicacin se producir error de ejecucin y esta podra quedar bloqueada.

Fin sesin 11

Anlisis Numrico 2013-1 Pgina 11

zoowars

Вам также может понравиться