Last active
September 6, 2024 16:36
-
-
Save Dalboz/fbc3b814e1a3993c3e9d38d576b70133 to your computer and use it in GitHub Desktop.
Ruptura para el rango de fechas seleccionadas
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Function SplitYear01(fechainicio As Date, fechaFin As Date) As Variant | |
Dim fechaActualInicio As Date | |
Dim fechaActualFin As Date | |
Dim finAnoFiscal As Date | |
Dim umatriz As Collection | |
Dim tupla() As Variant | |
Dim i As Integer | |
Dim count As Integer | |
' Crear una colección para almacenar las tuplas | |
Set umatriz = New Collection | |
' Iniciar la fecha actual como la fecha de inicio | |
fechaActualInicio = fechainicio | |
' Ciclo mientras la fecha actual esté antes o igual a la fecha final | |
Do While fechaActualInicio <= fechaFin | |
' Calcular el fin del año fiscal de la fecha de inicio actual | |
If Month(fechaActualInicio) >= 10 Then | |
finAnoFiscal = DateSerial(Year(fechaActualInicio) + 1, 9, 30) | |
Else | |
finAnoFiscal = DateSerial(Year(fechaActualInicio), 9, 30) | |
End If | |
' La fecha final del rango actual será el menor entre el fin del año fiscal o la fecha final del rango | |
If finAnoFiscal < fechaFin Then | |
fechaActualFin = finAnoFiscal | |
Else | |
fechaActualFin = fechaFin | |
End If | |
' Almacenar la tupla (fecha de inicio y fecha de fin) en la colección | |
umatriz.Add Array(Format(fechaActualInicio, "dd/mm/yyyy"), Format(fechaActualFin, "dd/mm/yyyy")) | |
' Mover la fecha de inicio al siguiente día del año fiscal | |
fechaActualInicio = DateAdd("d", 1, finAnoFiscal) | |
Loop | |
' Convertir la colección en una matriz bidimensional | |
count = umatriz.count | |
ReDim tupla(1 To count, 1 To 2) | |
For i = 1 To count | |
tupla(i, 1) = umatriz(i)(0) | |
tupla(i, 2) = umatriz(i)(1) | |
Next i | |
' Devolver la matriz bidimensional | |
SplitYear01 = tupla | |
' Limpiar la colección | |
Set umatriz = Nothing | |
End Function |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment