Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como descomponer rangos de fecha en años y meses

Estas en el tema de Como descomponer rangos de fecha en años y meses en el foro de Visual Basic clásico en Foros del Web. Hola, Tengo estos datos: Cita: 01/11/1965 20/04/1968 05/11/1968 31/03/1969 Bueno, es una lista de 100-200 rangos de fechas como los de antes. Y lo q ...
  #1 (permalink)  
Antiguo 31/10/2010, 11:34
 
Fecha de Ingreso: octubre-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Como descomponer rangos de fecha en años y meses

Hola,

Tengo estos datos:
Cita:
01/11/1965 20/04/1968
05/11/1968 31/03/1969
Bueno, es una lista de 100-200 rangos de fechas como los de antes. Y lo q necesito es descomponer cada linea en años (si incluye varios años) y estos años en meses, quedaría algo asi:

Por años:
01/11/1965 31/12/1965
01/01/1966 31/12/1966
01/01/1967 31/12/1967
01/01/1968 20/04/1968
05/11/1968 31/12/1968
01/01/1969 31/03/1969

La primera fila iba del 65 al 68 pues descompuesto ya aparece, el 65, 66, 67 y 68. Y con la otra igual.

Y ahora:
01/11/1965 30/11/1965
01/12/1965 31/12/1965
01/01/1966 31/12/1966 (en los 12 meses)
... y así con las demás..

Descomponer cada línea de las anteriores (ya en años) a meses de cada año.

Y calcular los días de cada línea de datos.

Estoy buscando pero no encuentra nada, y seguro q debe haberlo.

Gracias
  #2 (permalink)  
Antiguo 01/11/2010, 01:30
Avatar de Gakex  
Fecha de Ingreso: enero-2009
Mensajes: 137
Antigüedad: 15 años, 9 meses
Puntos: 4
Respuesta: Como descomponer rangos de fecha en años y meses

Hola cachucha10 no entendi bien tu pregunta pero seguro que vas a necesitar crear una funcion o un subprocedimiento para que te de todas las fechas que tengan que salir.

por aqui te dejo algo que encontre

Código:
Option Explicit

' recibe las dos fechas como parámetros
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Calcular(Fecha_Inicial As Date, _
                     Fecha_Final As Date)

    
    Const Formato As String = "#,##0"
    
    Me.Cls
    Me.Print "Calcular Intervalos entre las fechas  " & Fecha_Inicial & _
             "  hasta :" & Fecha_Final & vbNewLine & String(150, "-") & vbNewLine
                                   
    
    Me.Print Format(DateDiff("s", Fecha_Inicial, Fecha_Final), Formato) & " segundos"
    Me.Print Format(DateDiff("n", Fecha_Inicial, Fecha_Final), Formato) & " minutos"
    Me.Print Format(DateDiff("h", Fecha_Inicial, Fecha_Final), Formato) & " horas"
    
    Me.Print Format(DateDiff("y", Fecha_Inicial, Fecha_Final), Formato) & " dias"
    Me.Print Format(DateDiff("WW", Fecha_Inicial, Fecha_Final), Formato) & " semanas"
    Me.Print Format(DateDiff("m", Fecha_Inicial, Fecha_Final), Formato) & " meses"
    Me.Print Format(DateDiff("yyyy", Fecha_Inicial, Fecha_Final), Formato) & " años"
    
End Sub

Private Sub Command1_Click()
    ' le pasa las dos fechas a la función
    Call Calcular("01/01/2000", Date)
End Sub

Private Sub Form_Load()

    Me.AutoRedraw = True
    Command1.Caption = "calcular intervalos "

End Sub
Las lineas de arriba te dicen cuantos segundos, minutos, horas.... años hay entre dos fechas.

Puedes comprobar el resultado en la imagen de abajo



Ejemplo que esta en www.Recursosvisualbasic.com.ar
  #3 (permalink)  
Antiguo 01/11/2010, 05:25
 
Fecha de Ingreso: octubre-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: Como descomponer rangos de fecha en años y meses

Gracias,

lo q estoy intentando es, descomponer un rango/intervalo de fechas: 12/05/1965 a 29/08/2010, en meses.

Me tendría q salir así:

12/05/1965 a 31/05/1965 (comienzo en la primera fecha y cierro el mes)
01/06/1965 a 30/06/1965 (siguiente mes, este es entero, es más fácil)
..... y así hasta llegar a
01/08/2010 a 29/08/2010 (última fecha del rango/intervalo)

Los días q tiene cada línea generada es fácil calcularlos...

He buscado y veo q es un problema muy común en ACCESS:
http://www.sqlmonster.com/Uwe/Forum.aspx/sql-server-programming/17814/converting-single-record-with-date-range-into-multiple

Última edición por cachucha10; 01/11/2010 a las 06:28

Etiquetas: meses, rangos, fechas
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 11:03.