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