Crea un script para contar tiempo en AppleScript

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

2 respuestas a «Crea un script para contar tiempo en AppleScript»

  1. 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.

    1. 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

Responder a Tyflos Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.