Funciones de Fecha en Visual Basic - Programación en Microsoft Visual Studio .Net

Novedades

jueves, 28 de noviembre de 2013

Funciones de Fecha en Visual Basic

Las fechas son cadenas especiales. Visual Basic sabe obtener y tratar la información relativa a la fecha y la hora. Dispone para ello de una declaración de variable: Date. Una variable declarada como date puede contener una fecha y una hora o una hora solamente. En este post comparto una lista de las principales Funciones de Fecha que podemos usar al programar con Visual Basic, al final hay algunos ejemplos de aplicación.
funciones-de-fecha-hora-visual-basic

Estas son las funciones de fecha más utilizadas:

Date             Devuelve la fecha de hoy. Esta fecha la toma del reloj del ordenador.

Time             Devuelve la hora actual.

Now              Devuelve la fecha y hora actual.

WeekDay     Devuelve el día de la semana (En número, 1=Domingo, 2=Lunes,...)

Day               Obtiene el día, a partir de una fecha        

Month          Obtiene el mes a partir de una fecha. 

Year              Obtiene el año a partir de una fecha.       

Hour             Obtiene la hora a partir de una hora        

Minute         Obtiene el minuto a partir de una hora.    

Second         Obtiene el segundo a partir de una hora.

DateAdd      Añade un intervalo de tiempo a una fecha

DateDiff       Obtiene el intervalo de tiempo entre dos fechas

DatePart      Devuelve una parte de una fecha  (semana, trimestre, etc.)

DateSerial    Compone una fecha a partir de parámetros relativos

TimeSerial   Compone una hora a partir de parámetros relativos.

DateValue    Devuelve una fecha a partir de un dato que se le parezca y VB pueda Obtener  de él una fecha válida


Mediante estas instrucciones podemos obtener el dato necesario de una fecha u hora. Por ejemplo, para obtener el día de hoy solamente:

                       dia = Day (Now)     dia será un número
 
El día de la semana lo obtendríamos

                       diasemana = WeekDay (Now)       diasemana será un número
 
DateValue, una instrucción que le sacará mucho provecho

                       Fecha = DateValue (120796)                  
                       Fecha = DateValue (12 07 96)       Resultado  12/07/96
 

Usando la Funcion FORMAT en Visual Basic


Esta función permite presentar cadenas de numéricas o fechas de una determinada forma. Permite establecer el Formato de esa cadena.
 
Si recurre a la ayuda de VB acerca de esta función se va a enterar muy poco de lo que puede dar de sí. La sintaxis que presenta es:

Format(expresión[, formato[, primerdíadesemana[, primerasemanadelaño]]])
 
Lo mejor que puede hacer con esta definición de la sintaxis de Format es olvidarla. No le aclara mucho lo que se puede hacer con Format.  La función Format se usa para poner una fecha en un determinado formato. Con la expresión:
 
FechadeHoy = Format (Now, “yyyy-mm-dd”)
 
La variable FechadeHoy tendrá el valor  1998-05-21, que se refiere al día 21 de mayo de 1998, según el formato recomendado por la norma ISO-8601 para la presentación de fechas. Si hubiésemos puesto la expresión  FechadeHoy = Format (Now, “dd/mm/yy”), la variable FechadeHoy contendría el valor 21/05/98 referido al día citado.
 
Las posibilidades de Format llegan también al campo de las cadenas numéricas. Por ejemplo la cifra 123456 se transformará en las siguientes expresiones, según como empleemos la función Format

Variable = Format(123456, "Currency")     Variable = 123.456 Pts
Variable = Format(123456, "Standard")     Variable = 123.456,00
 
Veamos ahora con un poco más de conocimiento la sintaxis de Format

Variable = Format (expresión[, formato[, firstdayofweek[, firstweekofyear]]])
 
Donde:

  • Expresión es una cadena o fecha válida
  • Formato es uno de los formatos predefinidos  (Standard, Currency, etc)
  • Firstdayofweek. Especifica el primer día de la semana. Puede tomar uno de estos valores o constantes :
  • Firstweekofyear Específica cual es la primera semana del año. Puede tomar uno de los siguientes valores o constantes:

Valores que Puede Tomar la Función FirstDayOfWeek

Constante            Valor              Descripción
vbUseSystem           0                   El especificado en el sistema operativo.

VbSunday                1                   Domingo (valor por defecto)

vbMonday                2                   Lunes

vbTuesday                3                   Martes

vbWednesday           4                   Miércoles

vbThursday               5                   Jueves

vbFriday                   6                   Viernes

vbSaturday               7                   Sábado
 

Valores que Puede Tomar la Función FirstWeekYear

Constante
Valor
Descripción
vbUseSystem
0
Usa el valor del sistema operativo
vbFirstJan1
1
La primera semana es la que contiene al día 1 de Enero (Valor por defecto)
vbFirstFourDays
2
La primera semana es la que contiene al menos, 4 días de ese año (Rec. ISO - 8601)
vbFirstFullWeek
3
La primera semana es la que tiene todos sus días en ese año
   
Observe que usamos la expresión Variable =Format (1234567,”Formato”) para todos los ejemplos de números.
 
Para poner los números separados por millares:


Variable = Format(1234567, "##,###,###")       Variable = 1.234.567
                  
(Cada carácter # indica que ahí va un número. El separador debe ser una coma, no un punto, aunque esto depende del idioma que esté usando)
 
Puede poner una de estas expresiones, pero siempre entre comillas dobles:
           
General Number       Muestra el número tal como lo tecleó
Currency                  En formato de la moneda de su sistema operativo
Fixed                       Sin separador de millar y dos decimales  (1234567,00)
Standard                  Con separador de millares y dos decimales (1.234.567,00)
Percent                    Multiplica el número por cien y lo presenta cono porcentaje (123456700,00%)
Scientific                  Usa notación científica  (1,23E+06)


Para fechas    (Observe que usamos el ejemplo Format(Now,“Formato”) y Now = 21/07/98 a las 22:16:00)
 
General Date            21/07/98 22:16:00
Long Date                martes 21 de julio de 1998
Medium Date           21-jul-98
Short Date               21/07/98
yyyy-mm-dd            1998-05-21
yy-mm-dd               98-07-21
Long Time               22:19:53
Medium Time          10:20 PM
Short Time              22:20
hh :mm :ss               22 :21 :29
hh :mm                    22 :21

Ejemplo de Código Usando Funciones de Fecha

Estos son los principales formatos para fechas que generalmente se utilizan:


Dim cadena As String

cadena = Format("06/08/78", "General Date")        
' Devuelve: "06/08/1978"
cadena = Format("19/08/79", "Long Date")             
' Devuelve: "Jueves 19 de Agosto de 1979".
cadena = Format("19/8/79", "Medium Date")          
' Devuelve: "19-Ago-1979"
cadena = Format("17:08", "Short Time")                 
' Devuelve: "05:08"
cadena = Format("17:08", "Medium Time")            
' Devuelve: "05:08 PM"
cadena = Format("17:08", "Long Time")                  
Devuelve: "05:08:00 PM"



Mas Ejemplo de Código Usando Funciones de Fecha


Dim TestDateTime As Date = #1/27/2001 5:04:23 PM#

Dim TestStr As String

TestStr = Format(Now(), "Long Time")
‘‘Devuelve la fecha actual del sistema en el formato largo de fecha definido por el sistema.


TestStr = Format(Now(), "Long Date")
'También devuelve la fecha actual del sistema en la fecha larga definido por el sistema


TestStr = Format(Now(), "D")
‘Formato, utilizando el código de una sola letra para el formato.


TestStr = Format(TestDateTime, "h:m:s")
'Devuelve el valor de TestDateTime en formatos de fecha definido por el usuario / hora.
'Devuelve "5:04:23"


TestStr = Format(TestDateTime, "hh:mm:ss tt")
‘Devuelve "5:04:23 PM"


TestStr = Format(TestDateTime, "dddd, MMM d yyyy")
'Devuelve "Sábado, 27 de enero 2001".


' Returns "17:04:23".
TestStr = Format(TestDateTime, "HH:mm:ss")


TestStr = Format(23)
'Devuelve "17:04:23".


TestStr = Format(5459.4, "##,##0.00")
‘Formato numérico definido por el usuario. Devuelve "5,459.40".


TestStr = Format(334.9, "###0.00")
'Devuelve "334.90".

TestStr = Format(5, "0.00%")
'Devuelve "500.00%".


Recuerda envíar comentarios, si encuentras algún error en la prueba de los códigos.


4 comentarios:

  1. Muy bueno.
    Mas ejemplos: http://tupagina.comuf.com/

    ResponderEliminar
  2. Buenas tardes Pedro: cuando se utiliza el formato "ddd" aparece el nombre del día abreviado seguido de un punto (por ejemplo ma.) Pregunto: habría alguna forma de que el nombre abreviado salga sin el punto? (ma en lugar de ma.) Gracias

    ResponderEliminar
  3. Hola,

    ¿hay alguna macro que devuelva en una columna las fechas comprendidas entre dos? Por ejemplo, si la fecha inicio es 01/01/2016 y la final 10/01/2016, tendría que devolverme todo el rango de fechas:

    01/01/2016
    02/01/2016
    03/01/2016
    .
    .
    .
    10/01/2016

    ¿es posible? gracias.

    ResponderEliminar
  4. y como puedo poner la fecha sin que salga el día en letras. porque con "Long Date" sale martes 21 de julio de 1998
    ejm
    21 de julio de 2017

    ResponderEliminar

Gracias por tu comentario

Páginas