Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando
-- Tutorial de iniciación a Autoit --
Volver al índice del tutorial
____________________________
19.- Calendario (DatePicker. MonthCal.).
calendario.exe
- Nota: para trabajar con fechas es más fácil utilizar macros de fecha, como indico al final de esta página.
- Vamos a ver los componentes Date Picker y MohthCal.
- Una de las cosas importantes que necesitaremos es formatear las fechas. Lo podemos hacer con:
_GUICtrlDTP_SetFormat($Date1, "dd:MM:yyyy")
https://www.autoitscript.com/autoit3/docs/libfunctions/_GUICtrlDTP_SetFormat.htm
_DateTimeFormat($Date1, 1)
https://www.autoitscript.com/autoit3/docs/libfunctions/_DateTimeFormat.htm
- El formato de entrada debe ser: "YYYY/MM/DD[ HH:MM:SS]"
---------------------------------------------------------------------------------------------------------------------------
- También es interesante obtener la diferencia entre dos fechas en días, meses, horas, segundos...
_DateDiff('d', $dia, _NowCalc())
https://www.autoitscript.com/autoit3/docs/libfunctions/_DateDiff.htm
- El formato de entrada debe ser: "YYYY/MM/DD[ HH:MM:SS]"
- Sumar y restar fechas:
_DateAdd
https://www.autoitscript.com/autoit3/docs/libfunctions/_DateAdd.htm
- El formato de entrada debe ser: "YYYY/MM/DD[ HH:MM:SS]"
- La hora y fecha actual las obtenemos mediante:
_NowCalc()
- IMPORTANTE:
- Para trabajar con fechas es más fácil utilizar macros de fechas:
https://www.autoitscript.com/autoit3/docs/macros.htm#%40MDAY
$dateinput = GUICtrlCreateDate(@YEAR & "/" & @MON & "/" & @MDAY,67, 67, 155, 20)
- Para trabajar con fechas hay que incluir alguna librería como:
#include <Date.au3>
#include <GuiDateTimePicker.au3>
_______________________________________________
- El calendario está en Koda: Win32
__________________________
- Código completo.
Calendario diferencia entre hoy y otra fecha. |
#include <DateTimeConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiDateTimePicker.au3>
#include <Date.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Calendario - Juan A. Villalpando", 763, 421, 344, 136)
$Date1 = GUICtrlCreateDate(_NowCalc(), 8, 16, 297, 24)
$MonthCal1 = GUICtrlCreateMonthCal(_NowCalc(), 472, 16, 271, 209)
$Label1 = GUICtrlCreateLabel("Label1", 16, 224, 309, 20)
$Label2 = GUICtrlCreateLabel("Label2", 16, 272, 309, 20)
$Label3 = GUICtrlCreateLabel("Label3", 16, 320, 309, 20)
GUISetState(@SW_SHOW)
; Juan A. Villalpando - KIO4.COM
#EndRegion ### END Koda GUI section ###
$dia = ""
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Date1
$dia = GUICtrlRead($Date1)
GUICtrlSetData($Label1, $dia)
; Diferencia entre hoy y otro día.
Case $msg = $MonthCal1
$dia = GUICtrlRead($MonthCal1)
GUICtrlSetData($Label1,GUICtrlRead($MonthCal1))
GUICtrlSetData($Label2,_NowCalc())
GUICtrlSetData($Label3,_DateDiff('d', $dia, _NowCalc()))
EndSelect
Wend
Exit
|
________________________________________________
- Formatos de fechas:
- En código crea la función _DateFormat()
Formatos de fecha. Crea la función _DateFormat() |
#include <GuiConstantsEx.au3>
#include <GuiDateTimePicker.au3>
Local $Date = "1953/04/05 14:30:11.6"
MsgBox(0, "Date Format", 'Date = ' & $Date & @CRLF & _
'"d MMM-yy" ' & @tab & " = " & _DateFormat($Date, "d MMM-yy") & @CRLF & _
'"dddd, d MMMM, yyyy" = ' & _DateFormat($Date, "dddd, d MMMM, yyyy") & @CRLF & _
'"dd/MM/yyyy" ' & @tab & " = " & _DateFormat($Date, "dd/MM/yyyy") & @CRLF & _
'"HH-mm-ss or h:mm tt"" = ' & _DateFormat($Date, "HH-mm-ss or h:mm tt"))
; Crea la función _DateFormat
Func _DateFormat($Date, $style)
Local $hGui = GUICreate("My GUI get date", 200, 200, 800, 200)
Local $idDate = GUICtrlCreateDate($Date, 10, 10, 185, 20)
GUICtrlSendMsg($idDate, 0x1032, 0, $style)
Local $sReturn = GUICtrlRead($idDate)
GUIDelete($hGui)
Return $sReturn
EndFunc
|
________________________________________________
- Diferencia entre dos fechas.
- https://www.autoitscript.com/forum/topic/134970-difference-between-2-dates/
________________________________________________
- Hora y fecha actual.
- https://www.autoitscript.com/autoit3/docs/libfunctions/_NowDate.htm
- https://www.autoitscript.com/autoit3/docs/libfunctions/_NowTime.htm
________________________________________________
- Se utilizan macros para trabajar fácilmente con las fechas.
- A veces cuesta trabajo entender el formateo de fechas. Para trabajar con fechas fácilmente formateadas se suelen utilizar las macros.
Fecha con macro |
$fecha = "Hoy es " & @MDAY & " del " & @MON & " de " & @YEAR & ". Son las " & @HOUR & " horas y " & @MIN & " minutos." MsgBox(0, "Fecha", $fecha) |
- Aquí las puedes encontrar.
- https://www.autoitscript.com/autoit3/docs/macros.htm
_________________
|