Foros del Web » Programación para mayores de 30 ;) » .NET »

[R] Recorrer fechas

Estas en el tema de [R] Recorrer fechas en el foro de .NET en Foros del Web. Hola amigos!!! Necesitaria que me echarais una mano. Os cuento... Quiero hacer una función que mediante dos fechas (inicial y final), me devuelva un dataTable ...
  #1 (permalink)  
Antiguo 09/01/2009, 08:02
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
[R] Recorrer fechas

Hola amigos!!!

Necesitaria que me echarais una mano. Os cuento...
Quiero hacer una función que mediante dos fechas (inicial y final), me devuelva un dataTable con los meses que corresponden entre ellas.

Lo vemos con un ejemplo

FechaInicial = 12/01/08 10:00:00
FechaFinal = 30/05/08 16:44:23

en el dataTable que me devuelva lo correspondiente a
01/08
02/08
03/08
04/08
05/08


en el caso de que se cambiara de año
12/08
01/09

etc...

A simple vista facil, no?

GRacias!!!!!

Última edición por Laufwerk; 09/01/2009 a las 08:49
  #2 (permalink)  
Antiguo 09/01/2009, 08:48
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Recorrer fechas

es un poco largo pero aqui os lo dejo

Código:
    Public Function getMeses(ByVal fechaInicial As DateTime, ByVal fechaFinal As DateTime) As DataTable
        Dim maxMeses As Integer = 12

        Dim mesInicial As Integer = fechaInicial.Month
        Dim anoInicial As Integer = fechaInicial.Year

        Dim mesFinal As Integer = fechaFinal.Month
        Dim anoFinal As Integer = fechaFinal.Year

        Dim dt As DataTable
        dt = New DataTable("Periodo")
        Dim row1 As DataRow
        Dim Name As DataColumn = New DataColumn("Periodo")          'Declaramos una columna llamada Name
        Name.DataType = System.Type.GetType("System.String")        'Asignamos el tipo de datos a la columna
        dt.Columns.Add(Name)                                        'Añadimos la columna a la tabla



        If anoInicial = anoFinal Then
            Dim i As Integer
            For i = mesInicial To mesFinal
                row1 = dt.NewRow()                                                          'Declaramos una nueva fila
                row1.Item("Periodo") = convertMesToString(i) & "/" & anoInicial             'Asignamos un valor a esa fila
                dt.Rows.Add(row1)                                                           'Añadimos la fila completa a la tabla
            Next i
        Else
            If anoInicial < anoFinal Then
                Dim i As Integer
                For i = mesInicial To maxMeses                                              'Recorremos desde la fecha inicial hasta el 12
                    row1 = dt.NewRow()                                                      'Declaramos una nueva fila
                    row1.Item("Periodo") = convertMesToString(i) & "/" & anoInicial         'Asignamos un valor a esa fila
                    dt.Rows.Add(row1)                                                       'Añadimos la fila completa a la tabla
                Next i
                anoInicial = anoInicial + 1
                While anoInicial <= anoFinal
                    If anoInicial < anoFinal Then
                        For i = 1 To maxMeses
                            row1 = dt.NewRow()                                                      'Declaramos una nueva fila
                            row1.Item("Periodo") = convertMesToString(i) & "/" & anoInicial         'Asignamos un valor a esa fila
                            dt.Rows.Add(row1)                                                       'Añadimos la fila completa a la tabla
                        Next i
                    Else
                        If anoInicial = anoFinal Then
                            For i = 1 To mesFinal
                                row1 = dt.NewRow()                                                      'Declaramos una nueva fila
                                row1.Item("Periodo") = convertMesToString(i) & "/" & anoInicial         'Asignamos un valor a esa fila
                                dt.Rows.Add(row1)                                                       'Añadimos la fila completa a la tabla
                            Next i
                        End If
                    End If
                    anoInicial = anoInicial + 1
                End While
            End If
        End If
        getMeses = dt
    End Function

    Public Function convertMesToString(ByVal i As Integer) As String
        Dim mes As String
        mes = i.ToString
        If mes.Length = 1 Then
            mes = "0" & mes
        End If
        convertMesToString = mes
    End Function
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:53.