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.
Estas son las funciones de fecha más utilizadas:
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"
'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.
Muy bueno.
ResponderEliminarMas ejemplos: http://tupagina.comuf.com/
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
ResponderEliminarHola,
ResponderEliminar¿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.
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
ResponderEliminarejm
21 de julio de 2017