Files
tsWPF/dxwCalculadoraFecha.xaml.vb
2026-05-14 08:45:02 +02:00

60 lines
2.4 KiB
VB.net

Imports DevExpress.Xpf.Core
Public Class dxwCalculadoraFecha
Public NombreFichero As String
Public FechaCalculada As Date
Private _Fiestas As List(Of Date)
Public Sub New(FechaInicio As Date, Optional Fiestas As List(Of Date) = Nothing, Optional Titulo As String = "Introduzca Datos")
' Llamada necesaria para el diseñador.
InitializeComponent()
Me.Title = Titulo
Me.deFechaInicial.EditValue = FechaInicio
Me.deFechaCalculada.EditValue = FechaInicio
Me.DiasNaturales.EditValue = 0
Me.DiasHabiles.EditValue = 0
_Fiestas = Fiestas
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
End Sub
Public Sub New()
' Llamada necesaria para el diseñador.
InitializeComponent()
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
End Sub
Private Sub btCancelar_Click(sender As Object, e As RoutedEventArgs)
Me.DialogResult = False
Me.Close()
End Sub
Private Sub btAceptar_Click(sender As Object, e As RoutedEventArgs)
Try
If Me.deFechaCalculada.EditValue Is Nothing Then Throw New Exception("La fecha calculada no es válida")
Me.FechaCalculada = Me.deFechaCalculada.EditValue
Me.DialogResult = True
Me.Close()
Catch ex As Exception
DXMessageBox.Show(ex.Message, "Error")
End Try
End Sub
Private Sub btDiasNaturales_Click(sender As Object, e As RoutedEventArgs)
Dim FechaInicial As Date = Me.deFechaInicial.EditValue
deFechaCalculada.EditValue = FechaInicial.AddDays(DiasNaturales.EditValue)
End Sub
Private Sub btDiasHabiles_Click(sender As Object, e As RoutedEventArgs)
Dim FechaInicial As Date = Me.deFechaInicial.EditValue
Dim ndias As Integer = DiasHabiles.EditValue
Dim FechaCalculada As Date = FechaInicial
Dim Incremento As Integer = If(ndias > 0, 1, -1)
Do Until ndias = 0
If Not (FechaCalculada.DayOfWeek = DayOfWeek.Sunday OrElse FechaCalculada.DayOfWeek = DayOfWeek.Saturday OrElse (_Fiestas IsNot Nothing AndAlso _Fiestas.Contains(FechaCalculada))) Then ndias -= Incremento
FechaCalculada = FechaCalculada.AddDays(Incremento)
Loop
deFechaCalculada.EditValue = FechaCalculada
End Sub
End Class