A veces puede que necesitemos contar cuánto tiempo ha transcurrido desde un evento a otro mientras utilizamos nuestro equipo con MacOS. Con AppleScript podemos crear un script que realice esta cuenta de tiempo.
Con lo que conocemos de AppleScript y lo visto en los artículos de Crea un cronómetro de cuenta atrás en AppleScript, Controlar variables no definidas en AppleScript y Obtener la hora actual en AppleScript de distintas formas podemos crear el siguiente script:
global timeValue, counting on getTimeInSeconds() -- set t to (time of (current date)) return (time of (current date)) as number end getTimeInSeconds on startCount() set counting to true set timeValue to getTimeInSeconds() say ("Contando") end startCount on stopCount() set numberOfSeconds to getTimeInSeconds() - timeValue as integer set numberOfHours to numberOfSeconds / 3600 as integer if numberOfHours > 0 then set numberOfSeconds to numberOfSeconds - (numberOfHours * 3600) as integer end if set numberOfMinutes to numberOfSeconds / 60 as integer if numberOfMinutes > 0 then set numberOfSeconds to numberOfSeconds - (numberOfMinutes * 60) as integer end if say ("Tiempo transcurrido " & numberOfHours & " horas, " & numberOfMinutes & " minutos y " & numberOfSeconds & " segundos.") set timeValue to 0 set counting to false end stopCount on run try if counting = false then startCount else stopCount() end if on error number -2753 startCount() end try end run
Una pregunta rápida:
on error number -2753
¿hay que memorizar todos los números de errores posibles a la hora de capturarlos? Porque si es así nos podemos volver majaretas.
Buenas Jesús, todos los números de error y mensajes de error de AppleScript están documentados en la guía de números y mensajes de error de AppleScript.
La razón de por qué se siguen utilizando números de error en lugar de constantes literales para referenciar esos errores? Pues la razón es que AppleScript es bastante viejo y es interpretado. Si en el entorno de ejecución llenas toda la memoria cargando constantes y otros elementos que es muy probable que no sean utilizados por un script el tiempo de carga, interpretación y ejecución de un script puede aumentar notablemente. En los equipos actuales quizás no sea problemático pero AppleScript está pensado para ejecutarse en muchos tipos de máquinas.
De todas formas no hay por qué volverse loco recordando números de error. Todas las referencias a estos números puedes encontrarla en este enlace a la documentación oficial de Apple sobre AppleScript y sus errores: https://developer.apple.com/library/content/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_codes.html