Public Class CalculosDias
    Private Operaciones As New Operaciones
    Sub AgregarFechaIngresos(ByRef dgvIngresos As DataGridView, ByRef dtpFechaLiquidacion As DateTimePicker,
                             ByRef NombreCampoFecha As String, ByRef TipoBase As Integer)

        Dim Index As Integer = dgvIngresos.CurrentRow.Index
        Dim IndexAnterior As Integer = Index - 1
        Dim FechaAnterior As Date = Date.Today.Date
        Dim FechaActual As Date = Date.Today.Date
        Dim FechaLiquidacion As Date = dtpFechaLiquidacion.Value
        Dim DiaFijo As Integer = FechaLiquidacion.Day
        If Index > 0 Then
            FechaAnterior = Operaciones.ConvertirFecha(dgvIngresos.Rows(IndexAnterior).Cells(NombreCampoFecha).Value.ToString)
            FechaActual = CalcularFecha(FechaAnterior, DiaFijo, "Mensual", "M", TipoBase)
            dgvIngresos.Rows(Index).Cells(NombreCampoFecha).Value = Format((FechaActual), "dd/MM/yyyy").ToString

        Else

            FechaActual = CalcularFecha(Operaciones.ConvertirFecha(FechaLiquidacion), DiaFijo, "Mensual", "M", TipoBase)
            dgvIngresos.Rows(Index).Cells(NombreCampoFecha).Value = Format(FechaActual, "dd/MM/yyyy").ToString
        End If

    End Sub






    Function CalcularFecha(ByVal FechaInicial As Date, ByVal DiaFijo As Integer, ByRef FormaCalcularFechas As String,
                           ByRef Periodicidad As String, ByRef TipoBase As Integer)
        'Declaracion de Variables'
        Dim BaseDias As Integer = 0
        Dim FechaFinal As Date = Date.Today.Date






        If (TipoBase = 0 Or TipoBase = 2) Then

            BaseDias = 360


            If FormaCalcularFechas = "FinMes" Then
                FechaFinal = Operaciones.FechaFinMes(FechaInicial, Periodicidad, BaseDias)

            ElseIf FormaCalcularFechas = "Mensual" Then

                FechaFinal = Operaciones.FechaMensual(FechaInicial, Periodicidad, FormaCalcularFechas, 0, DiaFijo, BaseDias)
            End If


        ElseIf TipoBase = 1 Or TipoBase = 3 Then
            BaseDias = 365

            If FormaCalcularFechas = "FinMes" Then
                FechaFinal = Operaciones.FechaFinMes(FechaInicial, Periodicidad, BaseDias)

            ElseIf FormaCalcularFechas = "Mensual" Then

                FechaFinal = Operaciones.FechaMensual(FechaInicial, Periodicidad, FormaCalcularFechas, 0, DiaFijo, BaseDias)
            End If
        End If
        Return FechaFinal
    End Function
End Class
