Вы находитесь на странице: 1из 5

Seccin de cdigos , trucos y ejemplos

para visual basic


134 - Algunas funciones tiles sobre fechas
!olver" - Anterior - Siguiente

Contenido
#unciones varias para fechas
$alcular el d%a anterior a una fecha
determinada
!alores para pasar al argumento &nterval
'nlaces relacionados






'jemplos para trabajar con fechas en visual basic
El siguiente ejemplo tiene 5 funciones para obtener:
La cantidad de das de un ao determinado
Calcular la cantidad de das de un mes especfico
Averiguar si un da corresponde a un fin de semana
Averiguar el ltimo da de un Mes determinado
Averiguar el ltimo da de una semana
$ontroles:
Agregar para el ejemplo 5 CommandButton: Command! Command"! Command#! Command$
% Command5

C&digo fuente en un form
(e)to plano &mprimir
Private Sub Command1_Click() 1.
MsgBox Dias_del_Ao(2006) & " das" 2.
End Sub 3.
4.
Private Sub Command2_Click() 5.
MsgBox Dias_Del_Mes("05/09/2006") & " das" 6.
'nicio Ejemplos vb (c) * Active) Api vb +utoriales * Manuales C&digo fuente vb,net
Funciones para fechas http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual...
1 de 5 12/05/2014 01:02 a. m.
End Sub 7.
8.
Private Sub Command3_Click() 9.
MsgBox es_Fin_de_Semana(Date) 10.
End Sub 11.
12.
Private Sub Command4_Click() 13.
MsgBox fin_del_Mes(Date) 14.
End Sub 15.
16.
Private Sub Command5_Click() 17.
MsgBox fin_de_Semana(Date) 18.
End Sub 19.
20.
Private Sub Form_Load() 21.
Command1.Caption = " Cantidad de Dias de un Ao " 22.
Command2.Caption = " Cantidad de Das de un Mes " 23.
Command3.Caption = " Fin de semana ? " 24.
Command4.Caption = " Obtener ltimo da de un Mes " 25.
Command5.Caption = " Obtener ltimo da de una semana " 26.
End Sub 27.
28.
29.
'Funciones 30.
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 31.
32.
'Calcula la cantidad de das de un ao 33.
Public Function Dias_del_Ao(ByVal valor As Variant) As Integer 34.
If IsDate(valor) Or _ 35.
IsNumeric(valor) Then 36.
Dias_del_Ao = IIf(saltarYear(valor), 366, 365) 37.
End If 38.
End Function 39.
40.
Public Function saltarYear(ByVal valor As Variant) As Boolean 41.
42.
On Error GoTo LocalError 43.
44.
Dim iYear As Integer 45.
46.
If IsDate(valor) Then iYear = Year(valor) Else iYear = CInt(valor) 47.
48.
If TypeName(iYear) = "Integer" Then 49.
saltarYear = Day(DateSerial(iYear, 3, 0)) = 29 50.
End If 51.
Exit Function 52.
53.
LocalError: 54.
End Function 55.
56.
57.
'Calcula la cantidad de das de un mes de una fecha determinada 58.
'La fecha debe tener el formato mm/dd/yyyy 59.
'Si no se pasa el parmetro se asume la fecha de hoy 60.
61.
Public Function Dias_Del_Mes(Optional ByVal Fecha As Variant) As Integer 62.
63.
64.
Dim mes As Integer, y As Integer 65.
66.
If IsMissing(Fecha) Then Fecha = Date 67.
68.
If IsDate(Fecha) Then 69.
y = Year(Fecha) 70.
mes = Month(Fecha) 71.
ElseIf IsNumeric(Fecha) Then 72.
y = Year(Date) 73.
mes = IIf(Fecha > 0 And Fecha < 13, CInt(Fecha), 0) 74.
ElseIf VarType(Fecha) = vbString Then 75.
y = Year(Date) 76.
Select Case UCase(Left$(Fecha, 3)) 77.
Case "FEB": mes = 2 78.
Case "JAN", "MAR", "MAY", "JUL", "AUG", "OCT", "DEC": mes = 1 79.
Case "APR", "JUN", "SEP", "NOV": mes = 4 80.
End Select 81.
End If 82.
83.
Select Case mes 84.
Case 2: Dias_Del_Mes = IIf(saltarYear(Fecha), 29, 28) 85.
Case 1, 3, 5, 7, 8, 10, 12: Dias_Del_Mes = 31 86.
Case 4, 6, 9, 11: Dias_Del_Mes = 30 87.
End Select 88.
89.
End Function 90.
91.
Funciones para fechas http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual...
2 de 5 12/05/2014 01:02 a. m.
92.
'Devuelve si un determinado da corresponde a un fin de semana 93.
Public Function es_Fin_de_Semana(ByVal Fecha As Variant) As Boolean 94.
95.
If IsDate(Fecha) Then 96.
If (Weekday(Fecha) = 1) Or (Weekday(Fecha) = 7) Then 97.
es_Fin_de_Semana = True 98.
End If 99.
End If 100.
End Function 101.
102.
'Devuelve el ltimo das del Mes 103.
Public Function fin_del_Mes(Fecha As Variant) As Date 104.
105.
If IsDate(Fecha) Then 106.
fin_del_Mes = DateAdd("m", 1, Fecha) 107.
fin_del_Mes = DateSerial(Year(fin_del_Mes), Month(fin_del_Mes), 1) 108.
fin_del_Mes = DateAdd("d", -1, fin_del_Mes) 109.
End If 110.
111.
End Function 112.
113.
'Devuelve el ltimo da de la semana 114.
115.
Function fin_de_Semana(ByVal Fecha As Date) As Date 116.
117.
If IsDate(Fecha) Then 118.
fin_de_Semana = FormatDateTime(Fecha - Weekday(Fecha) + 7, vbGeneralDate) 119.
End If 120.
121.
End Function 122.

$alcular el d%a anterior a una fecha determinada*
formulario

$olocar en el form
un control +as,ed edit control
un +e)t
un Commandbutton

$digo fuente
(e)to plano &mprimir
Private Sub Command1_Click() 1.
' resultado de la fecha 2.
Text1.Text = DateSerial(Year(MaskEdBox1), Month(MaskEdBox1), 0) 3.
End Sub 4.
5.
Private Sub Form_Activate() 6.
Command1.Caption = "Obtener fecha" 7.
Funciones para fechas http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual...
3 de 5 12/05/2014 01:02 a. m.
MaskEdBox1.SetFocus 8.
End Sub 9.
10.
Private Sub Form_Load() 11.
' mscara 12.
Form1.MaskEdBox1.Mask = "##/##/##" 13.
End Sub 14.

!alores para pasar al argumento &nterval
+res funciones de -isual basic para el c.lculo de fec/as re0uieren un argumento llamado 'nterval!
esas funciones son : 1ateAdd! 1ate1iff % 1ate2art,
Este argumento es una e)presi&n de cadena 3 un valor de tipo 4tring5 0ue indica si se /ace
referencia a un ao! da! mes! /ora! minuto etc ,,
Los valores mnimos 0ue devolver.n o se le podr.n asignar dependiendo de la funci&n a utili6ar son
los siguientes
7%%%%7 : 'ndica Ao * El rango de -alores puede ser desde el ao 88 /asta el 9999
707 : 'ndica un cuatrimestre * Los posibles valores pueden ser de a $
7m7 : 'ndica un mes * Los posibles valores pueden ser de a "
7%7 : 'ndica un da del ao * Los posibles valores pueden ser de a #::
7d7 : 'ndica un da del mes * Los posibles valores pueden ser de a #
7;7 : 'ndica un da de la semana * Los posibles valores pueden ser de a <
7;;7 : 'ndica el nmero de semana en el ao * Los posibles valores pueden ser de a 5#
7/7 : =ora * Los posibles valores pueden ser de 8 a "#
7n7 : Minuto * Los posibles valores pueden ser de 8 a 59
7s7 : segundo * Los posibles valores pueden ser de 8 a 59

Algunos ejemplos para pasar al argumento 'nterval con las funciones 1ate1iff % 1ateAdd
(e)to plano &mprimir
' -- DateDiff : Devuelve el nmero de intervalos de tiempo entre dos fechas determin 1.
' -- DateAdd : Devuelve un Variant que contiene una fecha que indica el intervalo d 2.
3.
Dim dValueDate As Date 4.
5.
' ----------------------------------------------- 6.
' -- yyyy' con DateAdd 7.
' ----------------------------------------------- 8.
' -- Agregar dos aos a la fecha "01/01/2008" -- Retorna "01/01/2010" 9.
dValueDate = "01/01/2008" 10.
MsgBox DateAdd("yyyy", 2, dValueDate) 11.
12.
13.
' ----------------------------------------------- 14.
' -- yyyy' con DateDiff 15.
' ----------------------------------------------- 16.
' -- Obtener la cantidad de aos entre dos fechas -- Retorna 8 aos 17.
MsgBox DateDiff("yyyy", "01/01/2001", "01/01/2009") 18.
19.
20.
' ----------------------------------------------- 21.
' -- h' con DateDiff 22.
' ----------------------------------------------- 23.
' -- Obtener la cantidad de horas entre dos tiempos -- Retorna 2 horas de diferencia 24.
MsgBox DateDiff("h", "19:22:30", "21:22:30") 25.
26.
' ----------------------------------------------- 27.
' -- h' con DateAdd 28.
' ----------------------------------------------- 29.
' -- Agregar 2 Horas al valor de Hora actual 30.
MsgBox TimeValue(DateAdd("h", 2, Time)) 31.
32.
' ----------------------------------------------- 33.
' -- d' con DateAdd 34.
Funciones para fechas http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual...
4 de 5 12/05/2014 01:02 a. m.
' ----------------------------------------------- 35.
' -- Agregar 90 das a la fecha "01/01/2009" -- Retorna 1 de Abril de 2009 36.
MsgBox DateAdd("d", 90, "01/01/2009") 37.

-ecursos vb .*/ - enlaces relacionados
#unciones para fechas - (utorial de vb

0uscar en -ecursos vb

-ecursos visual basic * 0uscar * 1rivacidad * Cop%rig/t > "885 * "889 *
;;;,recursosvisualbasic,com,ar
Funciones para fechas http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual...
5 de 5 12/05/2014 01:02 a. m.

Вам также может понравиться