Zastępowanie tekstu skróconą datą i godziną


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

To nie kopiuje niczego do schowka. Natomiast jeśli wymienisz następujące

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

Otrzymuję zwrot „Czwartek, 24 maja 2018 r. O 13:42:47”

Moim celem końcowym jest zastąpienie słowa „CZAS” słowami „Data bez roku” i „o” i „Czas bez sekund”

Chciałbym również znaleźć sposób na zachowanie czasu AM lub PM tego czasu, ale może być po prostu łatwiej znaleźć sposób na przycięcie tej ostatniej sekcji.

Wszelkie uwagi na ten temat byłyby świetne. Jeśli jest ktoś, kto ma pojęcie, dlaczego pierwszy zestaw kodu nie działa, ale drugi zestaw chciałbym go usłyszeć.

Odpowiedzi:


1

Powinno to wyglądać tak:

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

Lub, aby osiągnąć swój rzeczywisty cel:

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

Ponieważ w AppleScript nie jest rozróżniana wielkość liter, skrypt również zastąpi „czas” lub „czas” ... więc będziesz potrzebować następującej uwagi:

considering case
set theTime to "TIME"
set finalProduct to replace_chars(pasteboard, theTime, datePrint)
end considering 

To wygląda doskonale. Będę musiał spróbować, kiedy wrócę do domu. Niestety moja praca zestrzeliła ten skrypt. Muszę je zatwierdzić, zanim użyję ich w pracy, i użyłem podobnego skryptu, aby skopiować i zastąpić numery spraw moim klientom.
Imbaker1234
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.