0 votos

AppleScript : convertir de decimal a horas / días

¿Cómo puedo convertir el valor en mi script de decimal a horas y / o días?

Para la conversión de decimal a la hora creo que es :

horas + (minutos /60)

pero mi variable es en este formato :

23.498611111111

De alguna manera tengo que conseguir 23 establece como un valor (horas) y la misma para las dos decimales después del "." pero no estoy seguro de cómo proceder

aquí está mi completa de la secuencia de comandos:

set myVariableDateHere to "25/03/2019 00:00:00"
set myWantedDate to convertDate(myVariableDateHere)

to convertDate(textDate)
    set resultDate to the current date

    set the day of resultDate to (text 1 thru 2 of textDate)
    set the month of resultDate to (text 4 thru 5 of textDate)
    set the year of resultDate to (text 7 thru 10 of textDate)
    set the time of resultDate to 0

    if (length of textDate) > 10 then
        set the hours of resultDate to (text 12 thru 13 of textDate)
        set the minutes of resultDate to (text 15 thru 16 of textDate)

        if (length of textDate) > 16 then
            set the seconds of resultDate to (text 18 thru 19 of textDate)
        end if
    end if

    return resultDate
end convertDate


set myTimeDifResult to ((current date) - myWantedDate as string)
set daysV to myTimeDifResult / 86400
set hoursV to myTimeDifResult / 60 / 60

conjunto de hoursV a roundThis(hoursV, 2) --> -75.54 en roundThis(n, numDecimals) set x 10 ^ numDecimals dígale a n * x si ((mod 2) ^ 2 > 0.25) entonces devolver (div 0.5 - div 1) / x volver div 1 / x final dicen final roundThis

set final to hoursV

if hoursV > 24 then
    set final to (daysV as integer) - 1
end if


return final

actualización :

Me di cuenta de cómo dos variable :

set the_decimalMin to hoursV mod 1
set the_decimaHours to hoursV div 1

pero ahora no puedo hacer que las matemáticas :

set hoursV to the_decimaHours + (the_decimalMin / 60)

error :

error "no se Puede hacer the_decimalMin en el tipo de referencia." número de -1700 de MyMinutes para hacer referencia a

1voto

red_menace Puntos 111

El AppleScript constantes days, hoursy minutes el número de segundos en un día, la hora y los minutos, respectivamente, por lo que sólo puede realizar algunas modulo de matemáticas para obtener los componentes. Por ejemplo, la hora sería la número mod days div hours, en el minuto sería el número mod hours div minutes, y los segundos sería el número mod minutes.

Poner todo eso junto en un par de propósito general controladores sería algo como:

set myVariableDateHere to "25/03/2019 00:00:00"
set myWantedDate to convertDate(myVariableDateHere)
log result
set difference to (current date) - myWantedDate
log result
log timeString(difference)
log formatTime(difference)

# Convert date text to an AppleScript date.
# format is DD/MM/YYYY hh:mm:ss (time is optional)
to convertDate(dateText)
  set dateTemplate to (current date)
  tell dateTemplate to set {its day, its month, its year} to words 1 thru 3 of dateText
  set time of dateTemplate to 0
  tell words of dateText to if (count it) > 3 then set time of dateTemplate to (hours * (item 4)) + (minutes * (item 5)) + (item 6)
  return dateTemplate
end convertDate

# Return an elapsed time string from a number of seconds.
on timeString(theSeconds)
  if class of theSeconds is integer then set theSeconds to "" & ¬
    (theSeconds div days) & " days, " & ¬
    (theSeconds mod days div hours) & " hours, " & ¬
    (theSeconds mod hours div minutes) & " minutes, and " & ¬
    (theSeconds mod minutes) & " seconds"
  return theSeconds
end timeString

# Return a formatted time string from a number of seconds.
# format is hh:mm:ss (wraps at 24 hours)
to formatTime(theSeconds)
  if class of theSeconds is integer then tell "0" & ¬
    (10000 * (theSeconds mod days div hours) ¬
      + 100 * (theSeconds mod hours div minutes) ¬
      + (theSeconds mod minutes)) ¬
      to set theSeconds to (text -6 thru -5) & ":" & (text -4 thru -3) & ":" & (text -2 thru -1)
  return theSeconds
end formatTime

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: