Oops, I answered directly to Steve Mills. Here is a synthesis of my answers.
On Feb 12, 2016, at 11:47 AM, Yvan KOENIG < email@hidden> wrote: I was not really surprised to get the same date in every sublists. To get the different values just edit one instruction :
set timePair to {newTime as text, TimeAsText}
Why did this not surprise you? Look at the description for "date":
A date is a date-time, stored internally as a number of seconds since some fixed initial reference date.
A date can be mutated in place, and is one of the classes for which set and copy behave differently.
Why, when "set" was used, does the value of newTime appear to be different (and unchanged) than when it is converted to text?
Sent from iCloud's ridiculous UI, so, sorry about the formatting
I was not really surprised because I already got this behavior in the past. My understanding is - but no guarantee - that when we put a date in a list, we just put a reference to the variable which continue to live. When we insert a string we really insert the group of characters as a dead item.
If you want to store the date as a date, take care of what I highlighted above and test the code edited as :
repeat 100 times set newTime to myTime # original instruction copy myTime to newTime # new one set time of newTime to random number from 1 to secsInADay newTime set TimeAsText to my DateToTimeText(newTime) set timePair to {newTime, TimeAsText} set the end of timeList to timePair end repeat
repeat 100 times set newTime to myTime # original instruction set time of newTime to random number from 1 to secsInADay newTime set TimeAsText to my DateToTimeText(newTime) copy {newTime, TimeAsText} to timepair set the end of timeList to timepair end repeat
repeat 100 times set newTime to myTime # original instruction set time of newTime to random number from 1 to secsInADay newTime set TimeAsText to my DateToTimeText(newTime) set timePair to {newTime, TimeAsText} copy timePair to end of timeList end repeat
Here it return: {{date "vendredi 12 février 2016 16:52:59", "4:52 p.m."}, {date "vendredi 12 février 2016 12:14:52", "12:14 a.m."}, {date "vendredi 12 février 2016 10:51:30", "10:51 a.m."}, {date "vendredi 12 février 2016 17:04:06", "5:04 p.m."}, {date "vendredi 12 février 2016 20:57:58", "8:57 p.m."}, {date "vendredi 12 février 2016 03:45:42", "3:45 a.m."}, {date "vendredi 12 février 2016 18:03:57", "6:03 p.m."}, {date "vendredi 12 février 2016 19:15:58", "7:15 p.m."}, {date "vendredi 12 février 2016 07:28:44", "7:28 a.m."}, {date "vendredi 12 février 2016 14:07:54", "2:07 p.m."}, {date "vendredi 12 février 2016 19:52:22", "7:52 p.m."}, {date "vendredi 12 février 2016 04:07:22", "4:07 a.m."}, {date "vendredi 12 février 2016 22:05:58", "10:05 p.m."}, {date "vendredi 12 février 2016 07:30:26", "7:30 a.m."}, {date "vendredi 12 février 2016 17:52:42", "5:52 p.m."}, {date "vendredi 12 février 2016 22:54:06", "10:54 p.m."}, {date "vendredi 12 février 2016 00:21:48", "0:21 a.m."}, {date "vendredi 12 février 2016 04:20:26", "4:20 a.m."}, {date "vendredi 12 février 2016 00:38:19", "0:38 a.m."}, {date "vendredi 12 février 2016 04:06:08", "4:06 a.m."}, {date "vendredi 12 février 2016 12:46:35", "12:46 a.m."}, {date "vendredi 12 février 2016 08:26:21", "8:26 a.m."}, {date "vendredi 12 février 2016 13:05:27", "1:05 p.m."}, {date "vendredi 12 février 2016 16:34:17", "4:34 p.m."}, {date "vendredi 12 février 2016 12:13:10", "12:13 a.m."}, {date "vendredi 12 février 2016 15:09:01", "3:09 p.m."}, {date "vendredi 12 février 2016 03:51:44", "3:51 a.m."}, {date "vendredi 12 février 2016 03:04:44", "3:04 a.m."}, {date "vendredi 12 février 2016 09:14:51", "9:14 a.m."}, {date "vendredi 12 février 2016 07:01:50", "7:01 a.m."}, {date "vendredi 12 février 2016 00:58:07", "0:58 a.m."}, {date "vendredi 12 février 2016 02:15:08", "2:15 a.m."}, {date "vendredi 12 février 2016 06:17:07", "6:17 a.m."}, {date "vendredi 12 février 2016 04:21:10", "4:21 a.m."}, {date "vendredi 12 février 2016 22:00:30", "10 p.m."}, {date "vendredi 12 février 2016 18:54:05", "6:54 p.m."}, {date "vendredi 12 février 2016 17:17:24", "5:17 p.m."}, {date "vendredi 12 février 2016 14:49:41", "2:49 p.m."}, {date "vendredi 12 février 2016 05:05:29", "5:05 a.m."}, {date "vendredi 12 février 2016 21:44:18", "9:44 p.m."}, {date "vendredi 12 février 2016 20:31:46", "8:31 p.m."}, {date "vendredi 12 février 2016 13:11:13", "1:11 p.m."}, {date "vendredi 12 février 2016 14:02:03", "2:02 p.m."}, {date "vendredi 12 février 2016 00:01:14", "0:01 a.m."}, {date "vendredi 12 février 2016 07:52:05", "7:52 a.m."}, {date "vendredi 12 février 2016 01:01:35", "1:01 a.m."}, {date "vendredi 12 février 2016 13:25:00", "1:25 p.m."}, {date "vendredi 12 février 2016 16:06:32", "4:06 p.m."}, {date "vendredi 12 février 2016 23:40:01", "11:40 p.m."}, {date "vendredi 12 février 2016 16:36:43", "4:36 p.m."}, {date "vendredi 12 février 2016 23:23:22", "11:23 p.m."}, {date "vendredi 12 février 2016 11:25:06", "11:25 a.m."}, {date "vendredi 12 février 2016 09:20:27", "9:20 a.m."}, {date "vendredi 12 février 2016 17:21:20", "5:21 p.m."}, {date "vendredi 12 février 2016 16:24:41", "4:24 p.m."}, {date "vendredi 12 février 2016 15:20:47", "3:20 p.m."}, {date "vendredi 12 février 2016 05:52:20", "5:52 a.m."}, {date "vendredi 12 février 2016 23:01:27", "11:01 p.m."}, {date "vendredi 12 février 2016 15:22:18", "3:22 p.m."}, {date "vendredi 12 février 2016 04:15:50", "4:15 a.m."}, {date "vendredi 12 février 2016 05:34:31", "5:34 a.m."}, {date "vendredi 12 février 2016 14:28:59", "2:28 p.m."}, {date "vendredi 12 février 2016 06:42:19", "6:42 a.m."}, {date "vendredi 12 février 2016 17:56:23", "5:56 p.m."}, {date "vendredi 12 février 2016 03:24:10", "3:24 a.m."}, {date "vendredi 12 février 2016 16:04:44", "4:04 p.m."}, {date "vendredi 12 février 2016 15:14:06", "3:14 p.m."}, {date "vendredi 12 février 2016 00:02:58", "0:02 a.m."}, {date "vendredi 12 février 2016 02:35:35", "2:35 a.m."}, {date "vendredi 12 février 2016 11:41:13", "11:41 a.m."}, {date "vendredi 12 février 2016 20:35:26", "8:35 p.m."}, {date "vendredi 12 février 2016 02:18:33", "2:18 a.m."}, {date "vendredi 12 février 2016 05:34:13", "5:34 a.m."}, {date "vendredi 12 février 2016 21:22:07", "9:22 p.m."}, {date "vendredi 12 février 2016 05:48:04", "5:48 a.m."}, {date "vendredi 12 février 2016 19:05:39", "7:05 p.m."}, {date "vendredi 12 février 2016 12:16:15", "12:16 a.m."}, {date "vendredi 12 février 2016 14:35:35", "2:35 p.m."}, {date "vendredi 12 février 2016 05:39:47", "5:39 a.m."}, {date "vendredi 12 février 2016 05:17:09", "5:17 a.m."}, {date "vendredi 12 février 2016 16:44:07", "4:44 p.m."}, {date "vendredi 12 février 2016 00:05:59", "0:05 a.m."}, {date "vendredi 12 février 2016 22:34:02", "10:34 p.m."}, {date "vendredi 12 février 2016 17:10:30", "5:10 p.m."}, {date "vendredi 12 février 2016 11:08:56", "11:08 a.m."}, {date "vendredi 12 février 2016 16:02:57", "4:02 p.m."}, {date "vendredi 12 février 2016 06:31:07", "6:31 a.m."}, {date "vendredi 12 février 2016 02:12:45", "2:12 a.m."}, {date "vendredi 12 février 2016 21:17:12", "9:17 p.m."}, {date "vendredi 12 février 2016 15:32:27", "3:32 p.m."}, {date "vendredi 12 février 2016 15:13:33", "3:13 p.m."}, {date "vendredi 12 février 2016 18:04:30", "6:04 p.m."}, {date "vendredi 12 février 2016 00:14:28", "0:14 a.m."}, {date "vendredi 12 février 2016 02:32:11", "2:32 a.m."}, {date "vendredi 12 février 2016 15:41:05", "3:41 p.m."}, {date "vendredi 12 février 2016 09:24:14", "9:24 a.m."}, {date "vendredi 12 février 2016 22:32:20", "10:32 p.m."}, {date "vendredi 12 février 2016 01:40:13", "1:40 a.m."}, {date "vendredi 12 février 2016 11:55:31", "11:55 a.m."}, {date "vendredi 12 février 2016 09:11:28", "9:11 a.m."}}
When we use set, we just create a pointer from myTime to newTime so at the end all occurrences point to the late value.
If we use copy, we create a new object so we get the different values.
Its what I understand when I read AppleScript User Guide:
Using the copy and set Commands
As its name implies, when you use the copy (page 153) command to create a variable, it always creates a separate
copy (though note that a copy of an object specifier still specifies the same object). However, when you use
the set (page 197) command to create a variable, the new variable always refers to the original object or value.
You have essentially created another name for the same object.
When more than one variable refers to a changeable (or mutable) object, a change to the object is observable
throughanyofthevariables.ThetypesofAppleScriptobjectsthataremutablearedate(page106),list(page
112), record (page 118), and script (page 121) objects.
For objects that cannot be modified (immutable objects), variables created with the set command may seem
like copies—there’s no way to change the object the variables point to, so they seem independent. This is
demonstrated in the example in the next section that creates the variables myName and yourName.
Yvan KOENIG running El Capitan 10.11.3 in French (VALLAURIS, France) vendredi 12 février 2016 19:46:52
|