I work with three date format,
1.04/18/2015 (PS my system date is not the same but DD/MM/YY)
2.June 2nd, 2012 but converted to the 1st format by code bellow
3.Saturday 24 March 2018 (current date)
I just created the script bellow to convert both date in the same format:
set creationDate to "March 23rd, 2018"
set CreationDay to ""
set Creationmonth to ""
set Creationyear to ""
if creationDate contains "1st" then
set CreationDay to "1"
end if
if creationDate contains "2nd" then
set CreationDay to "2"
end if
if creationDate contains "3rd" then
set CreationDay to "3"
end if
if creationDate contains "4th" then
set CreationDay to "4"
end if
if creationDate contains "5th" then
set CreationDay to "5"
end if
if creationDate contains "6th" then
set CreationDay to "6"
end if
if creationDate contains "7th" then
set CreationDay to "7"
end if
if creationDate contains "8th" then
set CreationDay to "8"
end if
if creationDate contains "9th" then
set CreationDay to "9"
end if
if creationDate contains "10th" then
set CreationDay to "10"
end if
if creationDate contains "11th" then
set CreationDay to "11"
end if
if creationDate contains "12th" then
set CreationDay to "12"
end if
if creationDate contains "13th" then
set CreationDay to "13"
end if
if creationDate contains "14th" then
set CreationDay to "14"
end if
if creationDate contains "15th" then
set CreationDay to "15"
end if
if creationDate contains "16th" then
set CreationDay to "16"
end if
if creationDate contains "17th" then
set CreationDay to "17"
end if
if creationDate contains "18th" then
set CreationDay to "18"
end if
if creationDate contains "19th" then
set CreationDay to "19"
end if
if creationDate contains "20th" then
set CreationDay to "20"
end if
if creationDate contains "21st" then
set CreationDay to "21"
end if
if creationDate contains "22nd" then
set CreationDay to "22"
end if
if creationDate contains "23rd" then
set CreationDay to "23"
end if
if creationDate contains "24th" then
set CreationDay to "24"
end if
if creationDate contains "25th" then
set CreationDay to "25"
end if
if creationDate contains "26th" then
set CreationDay to "26"
end if
if creationDate contains "27th" then
set CreationDay to "27"
end if
if creationDate contains "28th" then
set CreationDay to "28"
end if
if creationDate contains "29th" then
set CreationDay to "29"
end if
if creationDate contains "30th" then
set CreationDay to "30"
end if
if creationDate contains "31st" then
set CreationDay to "31"
end if
if creationDate contains "2018" then
set Creationyear to "2018"
end if
if creationDate contains "2017" then
set Creationyear to "2017"
end if
if creationDate contains "2016" then
set Creationyear to "2016"
end if
if creationDate contains "2015" then
set Creationyear to "2015"
end if
if creationDate contains "2014" then
set Creationyear to "2014"
end if
if creationDate contains "2013" then
set Creationyear to "2013"
end if
if creationDate contains "2012" then
set Creationyear to "2012"
end if
if creationDate contains "2011" then
set Creationyear to "2011"
end if
if creationDate contains "2010" then
set Creationyear to "2010"
end if
if creationDate contains "2009" then
set Creationyear to "2009"
end if
if creationDate contains "2008" then
set Creationyear to "2008"
end if
if creationDate contains "2007" then
set Creationyear to "2007"
end if
if creationDate contains "2006" then
set Creationyear to "2006"
end if
if creationDate contains "2005" then
set Creationyear to "2005"
end if
if creationDate contains "2004" then
set Creationyear to "2004"
end if
if creationDate contains "2003" then
set Creationyear to "2003"
end if
if creationDate contains "January" then
set Creationmonth to "01"
end if
if creationDate contains "February" then
set Creationmonth to "02"
end if
if creationDate contains "March" then
set Creationmonth to "03"
end if
if creationDate contains "April" then
set Creationmonth to "04"
end if
if creationDate contains "May" then
set Creationmonth to "05"
end if
if creationDate contains "June" then
set Creationmonth to "06"
end if
if creationDate contains "July" then
set Creationmonth to "07"
end if
if creationDate contains "Agust" then
set Creationmonth to "08"
end if
if creationDate contains "September" then
set Creationmonth to "09"
end if
if creationDate contains "October" then
set Creationmonth to "10"
end if
if creationDate contains "November" then
set Creationmonth to "11"
end if
if creationDate contains "December" then
set Creationmonth to "12"
end if
set CreationfinalDate to CreationDay & "/" & Creationmonth & "/" & Creationyear
return CreationfinalDate
Question 1: How can I convert date number 3 (which is the current date) to the same format
(I know how to return as a string but not otherwise)
set myDate to date string of (current date)
Question 2: can I create a script to tell me if the difference between date 2 and date 3 are within 60 days or outside 60 days?
Best Answer
Question 1: Rather than going through the trouble of obtaining the
current date
only to convert it to another format, you can obtain it in the right format straight away with a bash command:Question 2: First, reformat the date into that which your system can recognise. In your case (and mine), it's
dd/mm/yyyy
:Then subtract one date from the current date, and divide by
days
to get the number of days between the two dates:PS. You can use that same shell command to convert the date into your first format,
mm/dd/yyyy
, simply by switching%d
and%m
at the end of thecommand
string.ADDENDUM:
I thought I'd also show you how to convert the third date string into your desired format using pure AppleScript. It can be done rather quite elegantly, actually:
Note to other users: The code in this addendum may or may not work for you, depending on your system settings. AppleScript is notoriously fussy about what it will and will not recognise as a date string. The OP and I appear to have similar or identical Language & Region date settings, which allows the variable
today
to be interpreted correctly as a date by AppleScript, whilst the same code running on a different system would throw an error.To adapt the code here for use on your own system, first run the command
get date string of (current date)
to get a preview of the date format used by your system, then change the variable declaration fortoday
to match. Alternatively, set the variabletoday
tothe date string of (current date)
.