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

DateDiff : Devuelve el nmero de intervalos de tiempo entre dos fechas determinada s DatePart : Devuelve una parte especfica de una

fecha dada DateSerial : Devuelve un valor Date para un ao, mes y da determinados Funciones para calcular fechas hola ninomx2003: aqu tenes el cdigo ------------------------------'Los tres primeros valores son requeridos y los dos ltimos opcionales. 'DateDiff(intervalo, fecha1, fecha2[, primerdasemana[, primerasemanaao]]) Private Sub Form_Load() MsgBox "Dias de Diferencia: " & DateDiff("d", "12/06/2007", "14/06/2009") MsgBox "Aos de Diferencia: " & DateDiff("yyyy", "12/06/2007", "14/06/2009") MsgBox "Trimestres de Diferencia: " & DateDiff("q", "12/06/2007", "14/06/2009") MsgBox "Meses de Diferencia: " & DateDiff("m", "12/06/2007", "14/06/2009") MsgBox "Semanas de Diferencia: " & DateDiff("ww", "12/06/2007", "14/06/2009") MsgBox "Horas de Diferencia: " & DateDiff("h", "12/06/2007", "14/06/2009") MsgBox "Minutos de Diferencia: " & DateDiff("n", "12/06/2007", "14/06/2009") MsgBox "Segundos de Diferencia: " & DateDiff("s", "12/06/2007", "14/06/2009") End Sub PROYECTOSISTEMAS07@HOTMAIL.COM final long MILLSECS_PER_DAY = 24 * 60 * 60 * 1000; //Milisegundos al da Date fechaActual = new Date(); long diferencia= (( fechaActual.getTime() - fechaNacimiento.getTime() ) / MILLSE CS_PER_DAY) / 365; //Fecha nacimiento es otro date con la fecha de nacimiento Un abrazo. Public Class Form1 Function TuEdad(ByVal dInicio As Date, ByVal dFin As Date) As String Dim Dias As Integer, Meses As Integer, Aos As Integer Dim DiasMes As Integer Dias = Microsoft.VisualBasic.DateAndTime.Day(dFin) - Microsoft.VisualBas ic.DateAndTime.Day(dInicio) Meses = DatePart("m", dFin) - DatePart("m", dInicio) Aos = DateDiff("yyyy", dInicio, dFin) If Dias < 0 Then DiasMes = Microsoft.VisualBasic.DateAndTime.Day(DateSerial(Year(dIni cio), Month(dInicio) + 1, 0)) Dias = (DiasMes - Microsoft.VisualBasic.DateAndTime.Day(dInicio)) + Microsoft.VisualBasic.DateAndTime.Day(dFin) Meses = Meses - 1 End If

If Meses < 0 Then Meses = 12 + Meses Aos = Aos - 1 End If TuEdad = MsgBox("Tenes " & Format(Aos, "00" & " Aos ") & Format(Meses, "00 " & " Meses ") & Format(Dias, "00" & " Dias")) End Function Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.Even tArgs) Handles MyBase.Load TuEdad("14/03/1987", Now) End Sub End Class

Ejemplo para averiguar por medio de la fecha de nacimiento, la edad o aos de una persona qu se utiliza las funciones para fechas DateDiff y DataSerial

Nota: A la funcin Calcular_Edad, pasarle la fecha de nacimiento controles Colocar un Commandbutton

Cdigo fuente en un formulario :

1. Option Explicit 2. 3. ' retorna los aos 4. '''''''''''''''''''''''''''''''''''''' 5. Function Calcular_Edad(Fecha_Nacimiento As Variant) As Integer 6. Dim Aos As Variant 7. ' comprueba si el valor no es nulo 8. If IsNull(Fecha_Nacimiento) Then 9. Calcular_Edad = 0 10. Exit Function 11. End If 12. 13. Aos = DateDiff("yyyy", Fecha_Nacimiento, Now) 14. 15. If Date < DateSerial(Year(Now), Month(Fecha_Nacimiento), _ 16. Day(Fecha_Nacimiento)) Then 17. Aos = Aos - 1 18. End If

19. 20. Calcular_Edad = CInt(Aos) 21. End Function 22. 23. Private Sub Command1_Click() 24. 25. Dim fecha As Date 26. 27. fecha = "01/06/1988" 28. ' le pasa la fecha de nacimiento como parmetro 29. MsgBox Calcular_Edad(fecha), vbInformation, fecha 30. End Sub 31. 32. Private Sub Form_Load() 33. Command1.Caption = "calcular" 34. End Sub Calcular el nmero de das que tiene un mes Este otro ejemplo permite calcular y averiguar la cantidad de das que tiene un me s determinado, utilizando para ello las funciones DateAdd y DateDiff de visual b asic Ejemplo * Colocar un control TextBox llamado Text1 * un control Command llamado Command1. * En el Text1 escribir una fecha:

Cdigo fuente del formulario:

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

Option Explicit Private Sub Form_Load() Text1 = " Escriba una fecha para calcular el nmerode das de un mes " End Sub Private Sub Command1_Click() Dim Fecha_1 As Date Dim Fecha_2 As Date Fecha_1 = CDate(Text1) Fecha_2 = DateAdd("m", 1, Fecha_1) ' Muestra los das MsgBox " Este mes tiene : " & Format$(DateDiff("d", Fecha_1, Fecha_2))

17. 18. End Sub

http://www.grupoinformatica.com/programacion/visual-basic/1036-cudigo-visual-ba sic-calcular-edad-y-dnas-de-un-mes.html --------------

Funciones Para Fechas En Visual Basic

Gracias a este tutorial de visual basic 6.0 podrs: Saber 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 Agregar para el ejemplo 5 CommandButton: Command1, Command2, Command3, Comma nd4 y Command5 Cdigo en un form Private Sub Command1_Click() MsgBox DiasDelAo(2006) & " das" End Sub Private Sub Command2_Click() MsgBox DiasDelMes("05/09/2006") & " das" End Sub Private Sub Command3_Click() MsgBox esFinSemana(Date) End Sub Private Sub Command4_Click() MsgBox FinDelMes(Date) End Sub Private Sub Command5_Click() MsgBox FinDeSemana(Date) End Sub Private Sub Form_Load() Command1.Caption = " Cantidad de Dias de un Ao " Command2.Caption = " Cantidad de Das de un Mes " Command3.Caption = " Fin de semana ? " Command4.Caption = " Obtener ltimo da de un Mes " Command5.Caption = " Obtener ltimo da de una semana " End Sub

'###################################

'Funciones '################################### 'Calcula la cantidad de das de un ao Public Function DiasDelAo(ByVal valor As Variant) As Integer If IsDate(valor) Or IsNumeric(valor) Then DiasDelAo = IIf(saltarYear(valo r), 366, 365) End Function Public Function saltarYear(ByVal valor As Variant) As Boolean On Error GoTo LocalError Dim iYear As Integer If IsDate(valor) Then iYear = Year(valor) Else iYear = CInt(valor) If TypeName(iYear) = "Integer" Then saltarYear = Day(DateSerial(iYear, 3, 0)) = 29 End If Exit Function LocalError: End Function 'Calcula la cantidad de das de un mes de una fecha determinada 'La fecha debe tener el formato mm/dd/yyyy 'Si no se pasa el parmetro se asume la fecha de hoy Public Function DiasDelMes(Optional ByVal Fecha As Variant) As Integer Dim mes As Integer, y As Integer If IsMissing(Fecha) Then Fecha = Date If IsDate(Fecha) Then y = Year(Fecha) mes = Month(Fecha) ElseIf IsNumeric(Fecha) Then y = Year(Date) mes = IIf(Fecha >; 0 And Fecha <; 13, CInt(Fecha), 0) ElseIf VarType(Fecha) = vbString Then y = Year(Date) Select Case UCase(Left$(Fecha, 3)) Case "FEB": Case "JAN", "MAR", "MAY", "JUL", "AUG", "OCT", "DEC": Case "APR", "JUN", "SEP", "NOV": End Select End If Select Case mes Case 2: 28) Case 1, 3, 5, 7, 8, 10, 12: DiasDelMes = 31 Case 4, 6, 9, 11: DiasDelMes = 30 End Select

mes = 2 mes = 1 mes = 4

DiasDelMes = IIf(saltarYear(Fecha), 29,

End Function 'Devuelve si un determinado da corresponde a un fin de semana Public Function esFinSemana(ByVal Fecha As Variant) As Boolean If IsDate(Fecha) Then If (Weekday(Fecha) = 1) Or (Weekday(Fecha) = 7) Then esFinSemana = True End If End If End Function 'Devuelve el ltimo das del Mes Public Function FinDelMes(Fecha As Variant) As Date If IsDate(Fecha) Then FinDelMes = DateAdd("m", 1, Fecha) FinDelMes = DateSerial(Year(FinDelMes), Month(FinDelMes), 1) FinDelMes = DateAdd("d", -1, FinDelMes) End If End Function 'Devuelve el ltimo da de la semana Function FinDeSemana(ByVal Fecha As Date) As Date If IsDate(Fecha) Then FinDeSemana = FormatDateTime(Fecha - Weekday(Fecha) + 7, vbGeneralDa te) End If End Function http://www.programacion-ard.com/funciones_para_fechas_en_visual_basic_6.php ----

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