lunes, 26 de abril de 2010

Trabajar con Fechas en Flex.

Las fechas son siempre un tema importante en cualquier lenguaje de programación y Flex lo sabe por lo cual nos proporciona dos clases para trabajar con ellas.

Las clases son DateField y DateFormatter.la primer nos proporciona la fecha actual y la segunda nos sirve para parsear la fecha y adaptarla a nuestras necesidades. Para que quede más claro pondré un ejemplo práctico.

Asi queda el ejemplo ya terminado.




Bien pues lo primero que tenemos que hacer es crear un nuevo proyecto, despues agregarle controles. pongo el codigo y a su vez la explicación:


  1.     
  2. <!--xml version="1.0" encoding="utf-8"?-->  
  3. <mx:application xmlns:mx="http://www.adobe.com/2006/mxml">  
  4.   
  5. <mx:script>  
  6.  <!--[CDATA[<br /-->   
  7.  //Arreglo para manipula los dias  
  8.  private var dias:Array = new Array("Domingo","Lunes",  
  9.         "Martes""Miercoles""Jueves""Viernes""Sabado");  
  10.          
  11.         //Arreglo para manipular los meses  
  12.  private var meses:Array = new Array("Enero""Febrero",  
  13.         "Marzo""Abril""Mayo""Junio""Julio""Agosto",  
  14.         "Septiembre""Octubre""Noviembre""Diciembre");  
  15.     
  16.  //me devuelve la fecha actual del sistema  
  17.         private var fecha:Datenew Date();  
  18.     
  19.   //se ejecuta al elejir una fecha.  
  20.   private function onChange():void  
  21.   {  
  22.                         //pedimos la fecha con el metodo selectedDate  
  23.    txtsinParsear.text=""+miFecha.selectedDate;  
  24.   
  25.                         //pedimos la fecha con el metodo .tex  
  26.    txtMetodoText.text=miFecha.text;  
  27.   
  28.                         //aplicamos el formato a la fecha  
  29.    txtParseado.text=formatDate.format(miFecha.text);  
  30.      
  31.                         //generamos una cadena para la fecha larga  
  32.    fechaLarga.text= dias[fecha.day]+" , "+fecha.date   
  33.                           + " de " +meses[fecha.month]+ " de " +fecha.fullYear;  
  34.   }  
  35.  ]]>  
  36.   
  37. </mx:script>  
  38.   
  39.  <mx:datefield x="483" y="79" width="161" <br="">         change="onChange();" id="miFecha"/>  
  40.  <mx:textinput x="483" y="143" id="txtsinParsear">  
  41.  <mx:textinput x="483" y="205" id="txtMetodoText">  
  42.  <mx:textinput x="483" y="270" id="txtParseado">  
  43.  <mx:label x="259" y="196" text="metodo text:" <br="">        fontSize="20" color="#000000"/>  
  44.  <mx:label x="259" y="70" text="Fecha Actual:" <br="">         fontSize="20" color="#000000"/>  
  45.  <mx:label x="255" y="135" text="metodo selectedDate:" <br="">         fontSize="20" color="#000000"/>  
  46.  <mx:label x="259" y="261" text="fecha parseada:" <br="">         fontSize="20" color="#000000"/>  
  47.  <mx:label x="259" y="324" text="fecha con texto:" <br="">         fontSize="20" color="#000000"/>  
  48.  <mx:label x="259" y="379" text="Label" width="384" <br="">         height="36" color="#000000" fontSize="24" id="fechaLarga"/>  
  49.    
  50.  //elemento DateFormatter para formatear la fecha.  
  51.  <mx:dateformatter id="formatDate" formatstring="DD-MM-YYYY">  
  52.    
  53.    
  54. </mx:dateformatter></mx:label></mx:label></mx:label></mx:label></mx:label></mx:label></mx:textinput></mx:textinput></mx:textinput></mx:datefield></mx:application>  


como pueden ver no es dificil trabajar con las fechas lo que queda ahora es que juguen con las multiples conbinaciones de los metodos que les acabo de proporcionar y obtengan el resultado deseado.

si quieren un determinado formato de fecha o simplemente comentar haganlo y les contestare en el mismo dia.

4 comentarios:

  1. Hola José! que buen ejemplo de fechas... en verdad estoy un tanto enredada con esto, estoy trabajando con Flex Air por ende con base de datos...
    Como podría contactarme para hacerte una consulta? es que en definitiva no se cual es la mejor manera de inserción (al grabar el registro) y cual es lo mejor al hacer una búsqueda (lectura del registro) y hace días que estoy buscando en la web pero ningún ejemplo completo que abarque lo que necesito.

    Muy bueno el blog, ojala sigas agregando mas cosas para que sigamos compartiendo conocimiento y aprendiendo todos juntos.

    Saludos!
    Maru.-

    ResponderBorrar
  2. que tal puedes agregarme a robershadonw@hotmail.com o buen al google talk con j.roberto.leon@gmail.com, o tambien visitar mi pagina oficial http://aprendiendoflex.com saludos estoy a tus ordenes para cualquier duda.

    ResponderBorrar
  3. Buenas...

    No me aclaro, yo necesito:
    12/05/2010 09:14:35
    dd/mm/yyyy hh:mm:ss

    Pero no termino de entender el código, si pudieras facilitarme la función te lo agradecería. Es decir, no hay algo como
    devuelvefecha(date, formato); ¿?¿?

    Gracias.
    http://www.vertutoriales.com

    ResponderBorrar
  4. hola, una consulta, como hago para insertar, digamos la fechas 10/01/1978, porque veo que el datefield no me permite navegar por años con facilidad.

    ResponderBorrar