Visual Basic - calculo de fechas

Life is soft - evento anual de software empresarial
   
Vista:

calculo de fechas

Publicado por Ricardo (68 intervenciones) el 16/03/2012 20:41:44
hola a todos.... tengo una aplicación que le permite al usuario ingresar la cantidad de días otorgados de vacaciones (son días hábiles).... e incluir la fecha de inicio de la misma pero no quiero que el usuario introduzca la fecha de fin para evitar equivocaciones de ingreso o de calculo del usuario.... por tanto necesito CALCULAR AL FECHA DE FIN DE VACACIONES DEPENDIENDO DE LOS DOS DATOS INTRODUCIDOS ANTERIORMENTE....

y tambien el mismo planteo para el ingreso de licencias médicas (pero en este caso siempre son días corridos, no discrimina entre días de semana o fin de semana)

si alguien sabe la respuesta a este problema se los agradecería enormemente....

Gracias a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

calculo de fechas

Publicado por ChidMix agamanmix@yahoo.com (18 intervenciones) el 20/03/2012 18:36:07
Puedes ingresar fecha incial (FI) , el número de días como vacaciones (TotalVacs) y hacer lo siguiente

Do while Dias=1 to TotalVacs

FI =DateAdd("d", 1, FI)

if FIN_SEMANA(FI )=FALSE then

Dias =Dias +1 ' Solo días habiles y no concidera los descansos

end if

loop

'Hasta este momento debieras tener el total de días habiles o la fecha final de la proyeccion de las vacaciones. Solo validalo y si es superior por un día solo le restas un día a la fecha final.

'Devuelve si un determinado día corresponde a un fin de semana
Public Function FIN_SEMANA(ByVal Fecha As Variant) As Boolean

If IsDate(Fecha) Then
If (Weekday(Fecha) = 1) Or (Weekday(Fecha) = 7) Then
FIN_SEMANA = True
End If
End If
End Function

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

calculo de fechas

Publicado por carlosrueda (2 intervenciones) el 23/12/2014 20:02:11
Private Sub TxtDias_LostFocus(sender As Object, e As EventArgs) Handles TxtDias.LostFocus

Dim fechaInicial As DateTime

Dim bln As Boolean = DateTime.TryParse(TxtInicio.Text, fechaInicial)

If (bln) Then


If Val(TxtDias.Text) > 0 Then
Dim Ini As DateTime
Dim Festivos
Dim DiaActual
Dim Cant As Integer
Festivos = DiasFestivos.TxtDiasFestivos.Text 'Establece los dias festivos que contiene el formulario DiasFestivos antes debes crear una tabla Festivos para guardar ahí los datos como una cadena "01/01,03/02,05/05,10/05,etc"
Ini = DateValue(TxtInicio.Text) 'Inicia la variable ini con el contenido de la caja de texto TxtInicio menos un día
Ini = DateAdd("d", -1, Ini)
Cant = Val(TxtDias.Text) 'Establece la cantidad de días hábiles a disfrutar
For i = 1 To Cant 'Inicia el contador del bucle a 1
Ini = DateAdd("d", 1, Ini) 'Agrega un dia a la variable ini
If (Weekday(Ini) = 1) Or (Weekday(Ini) = 7) Then ' verifica si el dia de la variable ini es sabado o domingo
i = i - 1 'si el dia de la variable ini es sab o dom le resta un numero al contador i para saltar ese dia
Else
DiaActual = Format(Microsoft.VisualBasic.DateAndTime.Day(Ini), "00") & "/" & Format(Month(Ini), "00") 'convierte el dia en formato dd/mm para comparar con los dias festivos
If InStr(Festivos, DiaActual) > 0 Then 'verifica si el dia de la variable ini es festivo
i = i - 1 'si el dia de la variable ini es festivo le resta un numero al contador i para saltar ese dia
End If
End If
Next i 'incrementa el contador en 1
TxtTermino.Text = Ini 'establece el RESULTADO en la caja de texto
Else
TxtTermino.Text = "Verificar días" 'si la cantidad de días de vacaciones que introdujeron es 0 ó menor
End If
End If

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar