0 votos

¿Cómo puedo comprobar si el año es bisiesto en AppleScript?

El siguiente código es para comprobar si es un año bisiesto una vez que el programa detecta que el mes actual es febrero.

El código "if" parece bastante redundante.

set MM to month of (current date) as number
if (MM = 2) then

    set YY to year of (current date)
    if (YY mod 400 = 0) then
        set Prefix to Gregorian_Leap
    else if (YY mod 100 = 0) then
        set Prefix to Gregorian_28
    else if (YY mod 4 = 0) then
        set Prefix to Gregorian_Leap
    else
        set Prefix to Gregorian_28
    end if

else if (MM = 4 or MM = 6 or MM = 9 or MM = 11) then
    set Prefix to Gregorian_30
else
    set Prefix to Gregorian_31
end if

1voto

Mockman Puntos 16

Un enfoque alternativo sería pedir el mes del 29 de febrero. En un año no bisiesto, debería devolver "marzo".

month of date "2/29/2018"

Esto muestra el enfoque, pero como se señala en los comentarios, lo anterior se compila automáticamente en una fecha larga.

Para solucionar esto y también para proporcionar flexibilidad en cuanto al año, esto devolverá "febrero" en un año bisiesto, y "marzo" en caso contrario.

month of date ("2/29/" & (year of (current date) as text))

-> Marzo

Incorporando el código de la pregunta, podría ser así. Lo pedí de esta manera para no tener que pagar antes por más meses.

set g31 to {1, 3, 5, 7, 8, 10, 12}
set g30 to {4, 6, 9, 11}

set MM to month of (current date) as integer

if g31 contains MM then
    set Prefix to "Gregorian_31"
else
    if g30 contains MM then
        set Prefix to "Gregorian_30"
    else
        if month of date ("2/29/" & (year of (current date))) as integer = 2 then
            set Prefix to "Gregorian_Leap"
        else
            set Prefix to "Gregorian_28"
        end if
    end if
end if

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