3 votos

Este breve AppleScript que utiliza el día de la semana no funciona como se esperaba

set currentDay to weekday of (get current date)

if currentDay = "Monday" or currentDay = "Tuesday" or currentDay = "Wednesday" then
    set earlymorningDisc to 1
else if currentDay = "Thursday" or currentDay = "Friday" then
    set earlymorningDisc to 2
else
    set earlymorningDisc to 3
end if

Siempre está poniendo el disco de madrugada a 3. Soy nuevo en mac y agradecería cualquier ayuda. Gracias.

0 votos

@Tetsujin Ah, y la impresión/inspección de la variable probablemente sólo devolverá Friday como la impresión de la cadena. Es un asunto complicado.

4voto

Tetsujin Puntos 23061

No estoy seguro de que sea algo que se adivine sin que te lo digan, pero Applescript tiene su propio Clase de fecha lo que significa que las comillas no son necesarias. Se informará como una cadena, pero no es necesario referirse a ella como tal.

Así que todo lo que necesitas es esto

set currentDay to weekday of (current date)

if currentDay = Monday or currentDay = Tuesday or currentDay = Wednesday then
    set earlymorningDisc to 1
else if currentDay = Thursday or currentDay = Friday then
    set earlymorningDisc to 2
else
    set earlymorningDisc to 3
end if

Si lo intentas en el editor donde puedes ver el resultado en el panel inferior

set currentDay to weekday of (current date)
return currentDay 

Verás que responde con Friday

mientras que si se trata de

set currentDay to weekday of (current date) as string
return currentDay 

Verás que ahora responde con "Friday" entre comillas.

Por cierto, puedes concatenar tus múltiples ifs, en lugar de

if currentDay = Monday or currentDay = Tuesday or currentDay = Wednesday

puedes usar una lista

if currentDay is in {Monday, Tuesday, Wednesday}

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X