3 votes

Ce court AppleScript utilisant le jour de la semaine ne fonctionne pas comme prévu.

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

Le disque du matin est toujours réglé sur 3. Je suis nouveau sur Mac et j'apprécierais toute aide. Merci.

4voto

Tetsujin Points 95239

Je ne suis pas sûr que ce soit quelque chose que vous devineriez sans qu'on vous le dise, mais Applescript a son propre Classe de date ce qui signifie que les guillemets ne sont pas nécessaires. Il sera signalé comme une chaîne de caractères, mais vous n'avez pas besoin de vous y référer comme tel.

Donc tout ce dont vous avez besoin c'est ça

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 vous essayez ceci dans l'éditeur où vous pouvez voir le résultat dans le panneau inférieur

set currentDay to weekday of (current date)
return currentDay 

Vous verrez qu'il répond à Friday

alors que si vous essayez

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

Vous verrez qu'il répond maintenant à "Friday" entre guillemets.

D'ailleurs, vous pouvez concaténer vos multiples ifs, plutôt que de

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

vous pouvez utiliser une liste

if currentDay is in {Monday, Tuesday, Wednesday}

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X