contador de dias
contador de dias
Hola, me gustaria hacer un contador para determinar cuando cumple cierto plazo, tanto en dias habiles como en dias laborales, la duda esta en como elimino los sabados y domingos en el contador, gracias.
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: contador de dias
pe me ocurre, que Puedes hacer un bucle donde te compruebe con un contador los valores de iWeekday=1 domingo y 7 si es sabado y se los reste, no obstante seguro que encuentras algo para Visual Basic o Php ya hecho y es muy facil pasar la fórmula a autoit.
Salu2:)
Salu2:)
Código: Seleccionar todo
$iWeekday = _DateToDayOfWeek (@YEAR, @MON, @MDAY)
Re: contador de dias
Código: Seleccionar todo
#include <ButtonConstants.au3>
#include <DateTimeConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\Administrador\Mis documentos\Contador.kxf
$Form1 = GUICreate("Contador de dias", 633, 384, 192, 124)
$Group1 = GUICtrlCreateGroup("Calendario", 8, 8, 617, 369)
$MonthCal1 = GUICtrlCreateMonthCal(@YEAR & "/" & @MON & "/" & @MDAY, 24, 24, 193, 161)
$Label1 = GUICtrlCreateLabel("Dias de plazo:", 240, 32, 71, 17)
$Input1 = GUICtrlCreateInput("0", 360, 28, 49, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
$Label2 = GUICtrlCreateLabel("Dias extras festivos:", 240, 64, 98, 17)
$Input2 = GUICtrlCreateInput("0", 359, 60, 49, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
$Group2 = GUICtrlCreateGroup("Resultado", 24, 200, 593, 113)
$Label3 = GUICtrlCreateLabel("Fecha limite para dias habiles:", 48, 224, 145, 17)
$Label4 = GUICtrlCreateLabel("Fecha limite para dias laborables:", 48, 246, 160, 17)
$Label5 = GUICtrlCreateLabel("Dias que faltan/exceden el plazo:", 48, 268, 160, 17)
$Input3 = GUICtrlCreateInput("Sin establecer", 224, 220, 385, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input4 = GUICtrlCreateInput("Sin establecer", 224, 242, 385, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
$Input5 = GUICtrlCreateInput("Sin establecer", 224, 264, 385, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Calcular", 24, 320, 177, 49, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Acerca de", 231, 320, 177, 49, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Salir", 440, 320, 177, 49, $WS_GROUP)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
$Contador=0
Switch $nMsg
Case $Button1
$fecha=GUICtrlRead ( $MonthCal1 )
$fechaH=GUICtrlRead ( $MonthCal1 )
$Hoy= @YEAR & "/" & @MON & "/" & @MDAY
$diasdefiesta=GUICtrlRead ( $Input2 )
$Plazo=GUICtrlRead ( $Input1 )
$Plazocompleto=$Plazo+$diasdefiesta
While 1
If $Contador<$Plazo then
$fechaH = _DateAdd( 'd',1, $fechaH)
$HAno=StringMid ($fechaH, 1, 4 )
$HMes=StringMid ($fechaH, 6, 2 )
$HDia=StringMid ($fechaH, 9, 2 )
$Diadelasemana=_DateToDayOfWeek($HAno, $HMes, $HDia)
$Contador=$Contador+1
Else
ExitLoop
EndIf
WEnd
GUICtrlSetData($Input3, $HDia & "/" & $HMes & "/" & $HAno )
$Contador=0
While 1
If $Contador<$Plazocompleto then
$fecha = _DateAdd( 'd',1, $fecha)
$Ano=StringMid ($fecha, 1, 4 )
$Mes=StringMid ($fecha, 6, 2 )
$Dia=StringMid ($fecha, 9, 2 )
$Diadelasemana=_DateToDayOfWeek($Ano, $Mes, $Dia)
if $Diadelasemana=7 Or $Diadelasemana=1 Then
Else
$Contador=$Contador+1
EndIf
Else
ExitLoop
EndIf
WEnd
GUICtrlSetData($Input4, $Dia & "/" & $Mes & "/" & $Ano )
$Habiles=_DateDiff('d',$hoy, $fechaH)
$Laborables=_DateDiff('d',$hoy, $fecha)
GUICtrlSetData($Input5, $Habiles & " Dias para la fecha de habiles o " & $Laborables & " para la fecha de laborables." )
Case $Button3
Exit
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: contador de dias
Muy bueno el programa. Te faltaría añadir un string conteniendo todos los días laborales en tu comunidad o región, y comprobar en el else si es uno de estos... al ver si está contenido dentro del string anterior (o también haciendo un array etc...). También te puedes conectar a una web que los incluya y bajartelos con inetget.... rellenando el string desde allí, etc..
Salu2:)
Salu2:)
Re: contador de dias
Creo que eso es un poco mas complicado, aunque solo necesitaria los dias festivos nacionales.
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: contador de dias
No hay nada complicado, posiblemente con una función para bajar el html, y un string between .. o string split ... puedes tener la info de los días...Lucky escribió:Creo que eso es un poco mas complicado, aunque solo necesitaria los dias festivos nacionales.
Salu2:)