annotate date.rhope @ 75:0083b2f7b3c7

Partially working implementation of List. Modified build scripts to allow use of other compilers. Fixed some bugs involving method implementations on different types returning different numbers of outputs. Added Fold to the 'builtins' in the comipler.
author Mike Pavone <pavone@retrodev.com>
date Tue, 06 Jul 2010 07:52:59 -0400
parents 429b5f441381
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
46
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 //Note that the following code does not currently take into account leap seconds
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 Days From Secs[secs:days,secs left]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5 secs per day <- [[60]*[60]]*[24]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 days <- [secs]/[secs per day]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 secs left <- [secs]%[secs per day]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 //This doesn't take into account the mod 100 rule
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 Year From Unix Days[days:year,day in year]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 block days <- [[365]*[4]]+[1]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 base year <- [1970]+[[[days]/[block days]]*[4]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 after base <- [days]%[block days]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 If[[after base] > [365]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 year <- [[base year]+[1]]+[ [[after base]-[366]]/[365] ]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19 day in year <- [[after base]-[366]]%[365]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20 }{
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 year <- Val[base year]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22 day in year <- Val[after base]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
24 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
26 Is Leap Year[year:is,is not]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28 is <-If[[[year]%[400]]=[0]] {}
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
30 ,is not <- If[[[year]%[100]]=[0]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
31 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
32 is,is not <- If[[[year]%[4]]=[0]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
33 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
34 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
35 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
36
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
37 _Month From Day[day,days,current:month,day in month]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
38 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
39 curdays <- [days]Index[current]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
40 If[[day]<[curdays]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
41 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
42 month <- current
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
43 day in month <- day
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
44 }{
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
45 month,day in month <- _Month From Day[[day]-[curdays], days, [current]+[1]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
46 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
47 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
48
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
49 Month From Day[day,year:month,day in month]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
50 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
51 base <- (31,28,31,30,31,30,31,31,30,31,30,31)
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
52 Is Leap Year[year]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
53 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
54 days <- [base]Set[1, 29]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
55 }{
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
56 days <- Val[base]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
57 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
58 month,day in month <- _Month From Day[day, days, 0]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
59 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
60
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
61 Blueprint Date Time
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
62 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
63 Long:Fifty Micros
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
64 Word:Year
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
65 Byte:Month
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
66 Byte:Day
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
67 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
68
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
69 Date Time From Unix[unix:date]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
70 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
71 ,sec in day <- Days From Secs[unix]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
72 { year <- Year From Unix Days[~] {}
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
73 { month, day <- Month From Day[~, year] }}
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
74 date <- [[[[Build["Date Time"]]Fifty Micros <<[[sec in day]*[20000]]]Year <<[year]]Month <<[[month]+[1]]]Day <<[[day]+[1]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
75 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
76
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
77 Now[:date]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
78 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
79 date <- Date Time From Unix[Unix Time[]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
80 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
81
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
82 Seconds@Date Time[date:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
83 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
84 out <- [[[date]Fifty Micros >>]/[20000]]%[60]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
85 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
86
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
87 Milliseconds@Date Time[date:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
88 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
89 out <- [[[date]Fifty Micros >>]/[20]]%[60000]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
90 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
91
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
92 Microseconds@Date Time[date:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
93 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
94 out <- [[[date]Fifty Micros >>]%[20]]*[50]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
95 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
96
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
97 Hours@Date Time[date:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
98 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
99 out <- [[date]Fifty Micros >>]/[[[20000]*[60]]*[60]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
100 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
101
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
102 Minutes@Date Time[date:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
103 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
104 out <- [[[date]Fifty Micros >>]/[[20000]*[60]]]%[60]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
105 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
106
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
107 Day in Year@Date Time[date:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
108 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
109 base day <- [(0,0,31,59,90,120,151,181,212,243,273,304,334)]Index[[date]Month >>]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
110 ,noleap <- If[[[date]Month >>] > [2]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
111 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
112 ,noleap <- Is Leap Year[[date]Year >>]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
113 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
114 out <- [base day] + [[date]Day >>]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
115 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
116 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
117 Val[noleap]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
118 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
119 out <- [[base day] + [[date]Day >>]]-[1]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
120 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
121 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
122
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
123 //Gregorian only for the moment
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
124 //Sunday = 0, Saturday = 6
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
125 //Uses Zeller's algorithm
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
126 Day of Week@Date Time[date:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
127 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
128 If[[[date]Month >>] < [3]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
129 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
130 zmonth <- [[date]Month >>]+[12]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
131 zyear <- [[date]Year >>]-[1]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
132 }{
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
133 zmonth <- [date]Month >>
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
134 zyear <- [date]Year >>
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
135 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
136 [zyear]Slice@String[2]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
137 { century <- <String@Whole Number[~] }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
138 { y <- <String@Whole Number[~] }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
139
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
140 a <- [[26]* [[zmonth]+[1]]]/[10]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
141 b <- [[5]*[y]]/[4]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
142 c <- [century]/[4]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
143 d <- [2]*[century]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
144
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
145 out <- [[-[+[+[+[[date]Day >>, a], b], c], d]] + [6]] % [7]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
146 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
147
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
148 Format@Date Time[date,format:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
149 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
150 If[[format]=[""]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
151 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
152 out <- ""
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
153 }{
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
154 months <- ("", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
155 days <- ("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
156 cur,rest format <- [format]Slice[1]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
157 If[[cur] = ["Y"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
158 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
159 piece <- [date]Year >>
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
160 }{ If[[cur] = ["M"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
161 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
162 piece <- [date]Month >>
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
163 }{ If[[cur] = ["N"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
164 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
165 tpiece <- [months]Index[[date]Month >>]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
166 }{ If[[cur] = ["B"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
167 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
168 tpiece <- [[months]Index[[date]Month >>]]Slice[3]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
169 }{ If[[cur] = ["D"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
170 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
171 ppiece <- [date]Day >>
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
172 }{ If[[cur] = ["d"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
173 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
174 piece <- [date]Day >>
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
175 }{ If[[cur] = ["n"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
176 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
177 tpiece <- [days]Index[[date]Day of Week]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
178 }{ If[[cur] = ["b"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
179 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
180 tpiece <- [[days]Index[[date]Day of Week]]Slice[3]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
181 }{ If[[cur] = ["w"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
182 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
183 piece <- Day of Week[date]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
184 }{ If[[cur] = ["h"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
185 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
186 hour <- [date]Hours
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
187 If[[hour] > [12]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
188 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
189 ppiece <- [hour]-[12]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
190 }{
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
191 If[[hour] = [0]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
192 { ppiece <- 12 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
193 { ppiece <- Val[hour] }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
194 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
195 }{ If[[cur] = ["H"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
196 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
197 ppiece <- Hours[date]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
198 }{ If[[cur] = ["m"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
199 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
200 ppiece <- Minutes[date]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
201 }{ If[[cur] = ["s"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
202 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
203 ppiece <- Seconds[date]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
204 }{ If[[cur] = ["a"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
205 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
206 If[[[date]Hours] < [12]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
207 { tpiece <- "AM" }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
208 { tpiece <- "PM" }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
209 }{ If[[cur] = ["t"]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
210 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
211 ppiece <- Milliseconds[date]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
212 }{
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
213 tpiece <- Val[cur]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
214 }}}}}}}}}}}}}}}
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
215
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
216 sppiece <- <Whole Number@String[ppiece]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
217
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
218 If[[[sppiece]Length] < [2]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
219 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
220 tpiece <- ["0"]Append[sppiece]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
221 }{
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
222 tpiece <- Val[sppiece]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
223 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
224 tpiece <- <Whole Number@String[piece]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
225 out <- [tpiece]Append[[date]Format[rest format]]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
226
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
227 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
228 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
229
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
230 RFC 2822@Date Time[date:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
231 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
232 out <- [date]Format["d B Y H:m:s -0000"]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
233 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
234
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
235 //Preferred format for HTTP as specified by RFC 2616
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
236 RFC 2616@Date Time[date:out]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
237 {
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
238 out <- [[date]Format["b, D B Y H:m:s"]]Append[" GMT"]
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
239 }
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
240
429b5f441381 Added Date Time object
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
241