Reemplazar texto con fecha y hora más cortas

0
-- functions

-- replace characters
on replace_chars(this_text, search_string, replacement_string)
    set AppleScript's text item delimiters to the search_string
    set the item_list to every text item of this_text
    set AppleScript's text item delimiters to the replacement_string
    set this_text to the item_list as string
    set AppleScript's text item delimiters to ""
    return this_text
end replace_chars

-- split text

on splitText(theText, theDelimiter)
    set AppleScript's text item delimiters to theDelimiter
    set theTextItems to every text item of theText
    set AppleScript's text item delimiters to ""
    return theTextItems
end splitText


-- Actions

-- Action 1: Replace the word TIME with the Date and Time.

set shortDate to weekday & ", " & month & " " & days & " at "
set shortTime to hours & ":" & minutes

set pasteboard to the clipboard

set datePrint to shortDate & " at " & shortTime

set finalProduct to replace_chars(pasteboard, "TIME", datePrint)

set the clipboard to finalProduct

Esto copia nada al portapapeles. Mientras que si cambias lo siguiente

set shortDate to date string of (current date)
set shortTime to time string of (current date)

Me devuelven el "jueves 24 de mayo de 2018 a la 1:42:47 p.m."

Mi objetivo final es reemplazar la palabra "HORA" con la "Fecha sin año" & "at" & "Tiempo sin segundos"

También me gustaría encontrar una manera de mantener el aspecto de la hora de la mañana o de la tarde, pero podría ser más fácil encontrar una forma de recortar esa última sección.

Cualquier entrada sobre esto en absoluto sería genial. Si hay alguien que tiene una idea de por qué el primer conjunto de códigos no funciona, pero el segundo conjunto sí me encantaría escucharlo.

    
pregunta user4539850 24.05.2018 - 20:45

1 respuesta

0

Debería ser así:

set curr to current date
set dateprint to curr's weekday & ", " & curr's month & " " & curr's day & ¬
" at " & curr's hours & ":" & curr's minutes as string

O para cumplir su objetivo real:

tell date string of (current date)
set ds to text 1 thru -7
end tell
tell time string of (current date)
set ts to text 1 thru -7 & text -3 thru -1
end tell
set dateprint to ds & " at " & ts as string

Dado que AppleScript no distingue entre mayúsculas y minúsculas, su script también reemplazará "time" o "Time" ... por lo que necesitará la declaración de consideración:

considering case
set theTime to "TIME"
set finalProduct to replace_chars(pasteboard, theTime, datePrint)
end considering 
    
respondido por el spazek 25.05.2018 - 00:30

Lea otras preguntas en las etiquetas