2 votos

Juego de cadena de AppleScript no pudo

Lo quiero para que si la fecha coincide con la cadena, registrará "¡ funciona!". Sin embargo no parece trabajar.

set datesubmit to "27, May, 2016"
set trydate to {day, month, year} of (current date)
log (trydate)
log (datesubmit)
if trydate is equal to datesubmit then
    log ("works!")
end if

He tratado de asegurarse de que ambos son cadena las variables de tipo pero no puedo conseguirlo igual. Este fue el resultado:

(*27, May, 2016*)
(*27, May, 2016*)

¿Alguien me puede decir donde me equivoco?

2voto

klanomath Puntos 19587

Después de probar algunos llego a la conclusión de que un variable conjunto to {day, month, year} of (current date) no es una "cadena" con la forma "día, mes, año" sino "daymonthyear".

Así que usted puede cambiar la secuencia de comandos

set datesubmit to "27May2016"
set trydate to {day, month, year} of (current date)
log (datesubmit)
log (trydate)
if trydate as string is equal to datesubmit then
    log ("works!")
else
    log ("doesn't work!")
end if

que no es muy elegante.

Como alternativa se puede elegir:

set datesubmit to "Friday 27 May 2016"
set trydate to date string of (current date)
log (datesubmit)
log (trydate)
if trydate is equal to datesubmit then
    log ("works!")
else
    log ("doesn't work!")
end if

Siempre tienes que añadir el día de la semana en la primera variable aunque.

La mejor propuesta (hecha por el OP sí mismo) es:

set datesubmit to "27, May, 2016"
set trydate to day of (current date) & ", " & month of (current date) & ", " & year of (current date) as string
log (datesubmit)
log (trydate)
if trydate is equal to datesubmit then
    log ("works!")
else
    log ("doesn't work!")
end if

2voto

Felix Andersen Puntos 604

klanomath útil respuesta contiene soluciones viables, pero el más limpio y el método más fácil es comparar los elementos del mismo tipo directamente:

set datesubmit to {27, May, 2016}
set trydate to {day, month, year} of (current date)

if trydate = datesubmit then
    log "works!"
end if

Tanto las variables de fecha ahora contener 3 elementos de las listas ({ ..., ..., ... }) que pueden ser directamente comparados con is equal to o, simplemente, =.

Tenga en cuenta que May está integrado en el mes de la constante que se evalúa a 5 , en un contexto numérico (es que no es una cadena).

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