tarea de comandos
Visual Basic Script
Funciones de fecha y hora
Date()
Devuelve la fecha del servidor con formato mes, dia y año:
<% Response.Write( Date() ) %>
Y este sería el resultado:
22/12/03
Time()
Devuelve la hora del servidor con formato hora, minutos y segundos:
<% Response.Write( Time() ) %>
Y este sería el resultado:
10:24:23
Now()
Devuelve la fecha y hora del servidor juntas:
<% Response.Write( Now() ) %>
Y este sería el resultado:
22/12/03 10:24:23
Day(una_fecha) - Month(una_fecha) - Year(una_fecha)
Estas tres funciones devuelven el dia, mes y año, repectivamente, de una_fecha dada, por ejemplo, por la función Date() o escrita directamente en la forma"22/12/03" o "22-12-03":
<% Response.Write( Date() ) Response.Write(Day(Date()) & "<BR>") Response.Write(Month(Date()) & "<BR>") Response.Write(Year(Date()) & "<BR>") %>
Y este sería el resultado:
22/12/03
22
12
2003
Y lo mismo tenemos para las horas. En el caso de escribir directamente la hora, se deberá hacer en la forma: "10:05:18"
Hour(una_hora) - Minute(una_hora) - Second(una_hora)
<% Response.Write( Time() ) Response.Write(Hour(Time()) & "<BR>") Response.Write(Minute(Time()) & "<BR>") Response.Write(Second(Time()) & "<BR>") %>
Y este sería el resultado:
11:05:18
11
5
18
Weekday(una_fecha, [primero])
Devuelve un número que representa el día de la semana de una_fecha. El parámetro opcional [primero] es un número que indica cuál es el primer día de la semana, siendo 1 (domingo) su valor por defecto. Los valores devueltos y el nombre de las constantes son:
vbSunday | 1 | Domingo |
---|---|---|
vbMonday | 2 | Lunes |
vbTuesday | 3 | Martes |
vbWednesday | 4 | Miércoles |
vbThursday | 5 | Jueves |
vbFriday | 6 | Viernes |
vbSaturday | 7 | Sábado |
Estos mismos valores coinciden con los utilizados para [primero]. Por ejemplo, si el 22/12/2003 era lunes:
<% Response.Write( Date() & "<BR>" ) Response.Write(Weekday(Date())) %>
Y este sería el resultado:
22/12/03
2
DateAdd(intervalo, cuantos, mi_fecha)
Devuelve una fecha cuyo valor es el resultado de adicionarle a mi_fecha un intervalo de tiempo el número de veces indicado por cuantos. Los valores codificados de intervalo son los siguientes:
Intervalo | Descripción |
---|---|
yyyy | Año |
q | Trimestre |
m | Mes |
y | Día del año |
d | Día |
w | Día de la semana |
ww | Semana |
h | Hora |
n | Minuto |
s | Segundo |
Sea, por ejemplo, la fecha 30/12/03 a la que se desea sumar un mes:
<% Response.Write(DateAdd("m", 1, "30-12-03")) %>
Y este sería el resultado:
30/01/04
La función DateAdd() no devuelve fechas erróneas, y "redondea" los valores que se le den. Por ejemplo, si a la fecha anterior en lugar de un mes se le suman dos, no nos devuelve 30/02/04, que sería incorrecto, sino que:
<% Response.Write(DateAdd("m", 2, "30-12-03")) %>
Y este sería el resultado:
29/02/04
Como puedes ver, no ha sumado de forma absoluta dos meses (es decir, al menos 60 dias), pero ha dado un resultado correcto desde el punto de vista del calendario, incluso siendo el 2004 bisiesto. Si en lugar de sumar, queremos restar, solamente hay que dar los valores de cuantos en negativo:
<% Response.Write(DateAdd("m", -2, "30-12-03")) %>
Y este sería el resultado:
30/10/03
Otra característica, que puede ser muy util al escribir aplicaciones, de la función DateAdd() consiste en no ser necesario escribir el año en el parámetro mi_fecha, siempre que ésta sea escrita como una cadena en la forma "30/12/03" o "30-12-03". Si en lugar de la fecha entera, escribimos:
<% Response.Write(DateAdd("m", 1, "30-12")) %>
Se obtiene:
30/01/04
Con esto se puede conseguir no tener que revisar los programas cada año, siempre que los procedimientos sean en los mismos dias y meses, claro. También pueden sumarse intervalos de tiempo más pequeños. Por ejemplo, dos segundos:
<% Response.Write(DateAdd("s", 2, "31/12/03 23:59:59")) %>
Se obtiene:
1/01/04 0:00:01
DateDiff(intervalo, fecha1, fecha2)
Devuelve el número de intervalos de tiempo que hay entre fecha1 y fecha2. Los valores codificados de intervalo son los siguientes:
Intervalo | Descripción |
---|---|
yyyy | Año |
q | Trimestre |
m | Mes |
y | Día del año |
d | Día |
w | Día de la semana |
ww | Semana |
h | Hora |
n | Minuto |
s | Segundo |
Sea, por ejemplo, la diferencia en meses entre 1/1/03 y 1/1/04:
<% Response.Write(DateDiff("m", "1-1-03", "1-1-04")) %>
Y este sería el resultado:
12
Si fecha2 es menor que fecha1 se obtiene un resultado con signo negativo:
<% Response.Write(DateDiff("m", "1-1-03", "1-1-02")) %>
Se obtiene:
-12
Las valores obtenidos no indican que necesariamente hayan transcurridos estos intervalos de tiempo. Asi, si por ejemplo, se compara el 31 de diciembre con el 1 de enero del año inmediatamente posterior, DateDiff() devuelve 1 aunque solamente haya transcurrido un día.
DatePart(intervalo, fecha)
Extrae de fecha la parte indicada por intervalo. Los valores codificados de intervalo son los mismos que utilizan DateAdd() o DateDiff(). Sea por ejemplo:
<% Response.Write(DatePart("m", "31/12/03 23:59:59")) %>
Se obtiene:
12
IsDate(expresión)
Evalúa si expresión puede ser convertida a fecha, o lo que es lo mismo, si tiene un formato válido para representar una fecha. Por ejemplo:
<% Response.Write(IsDate("31/12/03 23:59:59")) %>
Se obtiene:
Verdadero
CDate(expresión)
Convierte expresión a tipo fecha. Es conveniente examinar primero la expresión para asegurarse de que la conversión es posible. Por ejemplo:
<% Response.Write(CDate("31/12/03 23:59:59")) %>
Se obtiene:
31/12/03 23:59:59
DateSerial(año, mes, dia)
Sirve para obtener un resultado con tipo de dato fecha a partir de valores numéricos directos o resultado de expresiones. Por ejemplo:
<% Response.Write(DateSerial(2003, 12, 1)) Response.Write(DateSerial(2003, 6+6, 3-2)) %>
Se obtiene para ambos:
01/12/2003
Para el argumento año, los valores entre 0 y 99, inclusive, se interpretan como los años 1900–1999. Para todos los demás hay que utilizar cuatro dígitos (por ejemplo, 1800 o 2000). El valor máximo es 9999.
Cuando cualquier argumento sobrepase el intervalo aceptado para dicho argumento, se aumenta a la siguiente unidad mayor que resulte apropiada. Por ejemplo, si se especifica 35 días, se evalúa como un mes y algunos días, según el mes del año al que se aplique. Sin embargo, si cualquier argumento simple está fuera del intervalo entre -32.768 y 32.767 (los límites del tipo integer), o si la fecha especificada por los tres argumentos, directamente o por expresión, queda fuera del intervalo de fechas aceptable, se produce un error.
DateValue(string)
Sirve para obtener un resultado con tipo de dato fecha a partir de un cadena de texto. Por ejemplo:
<% Response.Write(DateValue("2003/12/1")) Response.Write(DateValue("1/12/2003")) Response.Write(DateValue("1/diciembre/2003")) %>
Se obtiene para todos:
01/12/2003
Como puedes ver, la función reconoce tanto el tipo de fecha americano como europeo, y además interpreta el nombre del mes si no es un número. Si la cadena contiene también la hora, por ejemplo, "1/12/2003 16:30", DateValue devolverá la fecha pero no la hora, No obstante, si la hora tiene un valor erróneo, como "1/12/2003 16:70" se producirá un error. El rango de fechas aceptado es una fecha comprendida entre el 1 de enero del año 100 hasta el 31 de diciembre del año 9999
TimeSerial(hora, minuto, segundo)
Sirve para obtener un resultado con tipo de dato hora a partir de valores numéricos directos o resultado de expresiones. Por ejemplo:
<% Response.Write(TimeSerial(7, 50, 0)) Response.Write(TimeSerial(12-5, 60-10, 0)) %>
Se obtiene para ambos:
7:50:00
El intervalo para cada argumento debe estar en el intervalo aceptado para la unidad; es decir, 0–23 para horas y 0–59 para minutos y segundos. También se puede especificar horas relativas para cada argumento mediante cualquier expresión numérica.
Cuando cualquier argumento sobrepasa el intervalo aceptado para dicho argumento, se aumenta hasta la siguiente unidad mayor apropiada. Por ejemplo, si especifica 75 minutos, se evalúa como una hora y 15 minutos. Sin embargo, si cualquier argumento simple está fuera del intervalo de -32.768 a 32.767 (los límites del tipo integer), o si la hora especificada por los tres argumentos, directamente o por expresión, hace que la hora quede fuera del intervalo aceptable de horas, se produce un error.
TimeValue(string)
Sirve para obtener un resultado con tipo de dato hora a partir de un cadena de texto. La cadena debe representar una hora desde las 0:00:00 (12:00:00 a.m.) a las 23:59:59 (11:59:59 p.m.), inclusive. También cualquier expresión que represente una hora dentro de dicho intervalo. Si hora contiene Null, se devuelve Null. Por ejemplo:
<% Response.Write(DateValue("2:30PM")) Response.Write(DateValue("14:30")) Response.Write(DateValue("2:30")) %>
Se obtiene:
14:30:00
14:30:00
2:30:00
LastDay(mes, año)
Sirve para obtener el número correspondiente al último día de un mes/año dados. Por ejemplo:
<% Response.Write(LastDay(2, 2004)) %>
Se obtiene:
29