|
Visual Basic-8
Fechas y horas -
Inserción de controles en tiempo de ejecución.
Para los paises latino-americanos el primer día
de la semana es el Lunes (vbMonday)
Para los paises anglosajones el primer día de la semana es
el Domingo (vbSunday)
|
vbSunday
|
1
|
|
vbMonday
|
2
|
|
vbTuesday
|
3
|
|
vbWednesday
|
4
|
|
vbThurday
|
5
|
|
vbFriday
|
6
|
|
vbSaturday
|
7
|
| Fecha y hora actual |
MsgBox Now |
25/2/03 16:40:24
|
| Fecha actual |
MsgBox Date |
25/2/03
|
| Hora actual |
MsgBox Time |
16:40:24
|
| Formato de horas |
t = #20:45:32 PM# |
|
| Devuelve la hora |
MsgBox Hour (t) |
20
|
| Devuelve el minuto |
MsgBox Minute (t) |
45
|
| Devuelve el segundo |
MsgBox Second (t) |
32
|
| Formato de fecha |
f = #2/23/2003# (mes,
día, año) |
|
| Devuelve el año |
MsgBox Year (f) |
2003
|
| Devuelve el mes |
MsgBox Month (f) |
2
|
| Devuelve el día |
MsgBox Day (f) |
23
|
| Devuelve número del día |
MsgBox WeekDay (f, vbMonday) |
7
|
| Devuelve nombre del día |
MsgBox WeekDayName (f, vbMonday) |
Domingo
|
| Pasa a fecha |
f = DateSerial (2003, 6, 28) |
f = #6/28/2003# (mes,día,año)
|
| |
MsgBox DateSerial (2003, 6, 28) |
28/6/2003
|
| Pasa a fecha |
MsgBox DateValue (f) |
28/6/2003
|
| Pasa a horas |
t = TimeSerial (20, 45, 32) |
t = #20:45:32#
|
| |
MsgBox TimeSerial (20,45,32) |
20:45:32
|
| Pasa a horas |
MsgBox TimeValue (t) |
20:45:32
|
| Pasa a fecha u hora |
CDate (#9/28/2003#)
CDate (#4:45:23 PM#) |
|
Formatos de fecha y hora.
|
MsgBox Format(Time, "Long
Time") |
16:10:26
|
|
MsgBox Format(Time, "Short
Time") |
16:10
|
|
MsgBox Format(Date, "Long Date") |
miércoles, 23 de julio de 2003
|
|
MsgBox Format(Date, "Short Date") |
23/7/2003
|
| -- |
-- |
---_mmm
|
| Hora |
t = #20:45:32# |
.
|
| Fecha |
f = #9/28/2003# |
.
|
| F y H |
ft = #9/28/2002 20:45:32# |
|
|
MsgBox Format(t, "hh:mm:ss AMPM") |
20:45:32
|
|
MsgBox Format(f, "dddd, d mmmm yyyy") |
domingo, 28 septiembre 2003
|
|
MsgBox Format(f, "dddd, mmm d yyyy") |
domingo, sep 28 2003
|
|
MsgBox Format(f, "ddd, mmmm d yyyy") |
dom, septiembre 28 2003
|
|
MsgBox Format(f, "dddd, mmmm d yy") |
domingo, septiembre 20 2003
|
|
MsgBox Format(f, "d, \de mmmm \de yyyy") |
28, de septiembre de 2003
|
Diferencia entre dos fechas o tiempos.
DateDiff(Intervalo, fechavieja, fechanueva, vbMonday)
Intervalo = "yyyy", "q", "m",
"y", "d", "w", "ww", "h",
"n", "s"
Private Sub Command1_Click()
viejo = #12/24/2002 10:40:24#
nuevo = Now
Enaños = DateDiff("yyyy", viejo, nuevo, vbMonday)
Enmeses = DateDiff("m", viejo, nuevo, vbMonday)
Endias = DateDiff("d", viejo, nuevo, vbMonday)
Enhoras = DateDiff("h", viejo, nuevo, vbMonday)
Enminutos = DateDiff("n", viejo, nuevo, vbMonday)
Ensegundos = DateDiff("s", viejo, nuevo, vbMonday)
Print Enaños
Print Enmeses
Print Endias
Print Enhoras
Print Enminutos
Print Ensegundos
End Sub
|
Añadir fecha
DateAdd(Intervalo, cantidad, Fecha)
Intervalo = "yyyy", "q", "m",
"y", "d", "w", "ww", "h",
"n", "s"
DateAdd("m", 25, Now) -------> Le añade
25 minutos a la hora actual.
Inserción de controles
en tiempo de ejecución.
- Normalmente ponemos los controles mientras se está
construyendo el Formulario, esto es
insertar los controles en tiempo de diseño.
- Tambíén se pueden colocar los controles, (especialmente
las matrices de controles) cuando se carga
el programa, esto es insertar los controles en tiempo
de ejecución.
1.- Creamos un nuevo proyecto EXE estándar
y colocamos un TextBox.
2.- Al TextBox anterior le ponemos, en sus Propiedades, de nombre
(Nombre) = aa y en su Propiedad Text
= (ponerlo vacio)
3.- Marcamos el casillero aa / Botón
derecho - Copiar / Botón derecho - Pegar
4.- Pulsamos Sí.
El casillero aa se habrá convertido en aa(0)
y el otro en aa(1)
5.- Eliminamos del Formulario el aa(1),
nos quedamos sólo con el aa(0)

6.- Ahora creamos un nuevo control TextBox llamado
bb(0) al lado del aa(0), de la misma
forma que creamos al aa.
7.- Ponemos el siguiente código...
Dim total
Private Sub aa_Change(Index As Integer)
Print Index
If (aa(Index) > 5) And (aa(Index) < 7) Then bb(Index) = "Bien"
If (aa(Index) > 7) And (aa(Index) < 10) Then bb(Index) = "Notable"
If aa(Index) < 5 Then bb(Index) = "Insuficiente"
End Sub
Private Sub Form_Load()
total = InputBox("¿Cuántos alumnos hay en esta clase? ")
Dim i As Integer
For i = 1 To total
Load aa(i)
aa(i).Top = 10 + i * 400
aa(i).Visible = True
Load bb(i)
bb(i).Top = 10 + i * 400
bb(i).Visible = True
Next i
aa(0).Visible = False
bb(0).Visible = False
End Sub
|
El bucle For-Next junto con el Load aa(i) va
creando y colocando los controles en el momento de cargar el Formulario.
El aa(i).Top situa uno debajo del otro.
Fíjate que a los TextBox: aa y bb no les
he puesto el .Text (esto es porque
esa es su propiedad por defecto y no es obligatorio ponerla)
Es decir se puede poner aa(Index).Text
> 5 o símplemente aa(Index)
> 5
En este programa, al poner una nota del 0 al
9 en los casilleros de la izquierda, obtenemos su calificación
correspondiente en su casillero de la derecha.
|