OSDN Git Service

9bad03af1ba8fa61fbd9598449730eff38bf3629
[ring-lang-081/ring.git] / docs / build / html / _sources / dateandtime.txt
1 .. index:: 
2         single: 日付と時刻; はじめに
3
4 ==========
5 日付と時刻
6 ==========
7
8 日付と時刻の用法を学びます。
9
10 .. index:: 
11         pair: 日付と時刻; clock()
12
13
14 Clock() 関数
15 ============
16
17 文法:
18
19 .. code-block:: ring
20
21          Clock() ---> プログラム開始時からのクロック・ティック数
22
23 用例:
24
25 .. code-block:: ring
26         
27         See "Calculate performance" + nl
28         t1 = clock()
29         for x = 1 to 1000000 next
30         see clock() - t1 
31
32 .. index:: 
33         pair: 日付と時刻; ClosPerSecond()
34
35 ClocksPerSecond() 関数
36 ======================
37
38 一秒あたりのクロック数を返します。
39
40 文法:
41
42 .. code-block:: ring
43
44         clockspersecond() ---> 一秒あたりのクロック数
45
46 用例:
47
48 .. code-block:: ring
49
50         # 1 秒待つ
51         t = clock()
52         while clock() - t <= clockspersecond() end
53
54 .. index:: 
55         pair: 日付と時刻; Time()
56
57 Time() 関数
58 ===========
59
60 Time() 関数はシステムの時刻を取得します。
61
62 用例:
63
64 .. code-block:: ring
65         
66         See "Time : " + time()
67
68
69 .. index:: 
70         pair: 日付と時刻; Date()
71
72 Date() 関数
73 ===========
74
75 Date() 関数は日付を取得します。
76
77 文法:
78
79 .. code-block:: ring
80
81          Date() ---> 文字列は "日/月/西暦" 表記による日付表記です。
82
83 用例:
84
85 .. code-block:: ring
86
87         See "Date : " + date()  # 日付 : 24/05/2015
88
89
90 .. index:: 
91         pair: 日付と時刻; TimeList()
92
93 TimeList() 関数
94 ===============
95
96 TimeList() 関数は日付と時刻の情報を表示します。 
97
98 文法:
99
100 .. code-block:: ring
101
102         TimeList() ---> リストは時刻と日時の情報を有しています。
103
104 この表はリストの項目です。
105
106 ============    =================================================
107 インデックス              値
108 ============    =================================================
109 1                               略式による週の名前
110 2                               正式による週の名前
111 3                               略式による月の名前
112 4                               正式による月の名前
113 5                               日付と時刻
114 6                               今月の経過日数
115 7                               時間 (24 時間制)
116 8                               時間 (12 時間制)
117 9                               今年の経過日数
118 10                              今年の経過週数
119 11                              今時の経過分数
120 12                              AM (午前) または PM (午後)
121 13                              今分の経過秒数
122 14                              今年の経過週数 (日~土)
123 15                              今週の経過日数
124 16                              日付
125 17                              時刻
126 18                              世紀による年の表記
127 19                              西暦
128 20                              タイムゾーン
129 21                              パーセント記号
130 ============    =================================================
131
132 用例:
133
134 .. code-block:: ring
135
136         ## 実行結果:
137         ## Sun                  略式による週の名前
138         ## Sunday               正式による週の名前
139         ## May                  略式による月の名前
140         ## May                  正式による月の名前
141         ## 05/24/15 09:58:38    日付と時刻
142         ## 24                   今月の経過日数
143         ## 09                   時間 (24 時間制)
144         ## 09                   時間 (12 時間制)
145         ## 144                  今年の経過日数
146         ## 05                   今年の経過週数
147         ## 58                   今時の経過分数
148         ## AM                   AM (午前) または PM (午後)
149         ## 38                   今分の経過秒数
150         ## 21                   今年の経過週数 (日~土)
151         ## 0                    今週の経過日数
152         ## 05/24/15             日付
153         ## 09:58:38             日時
154         ## 15                   世紀による年表記
155         ## 2015                 西暦
156         ## 東京 (標準時)        タイムゾーン (結果は OS, 言語、地域に依存)
157         ## %                    パーセント記号
158         
159         See TimeList() 
160
161 用例:
162
163 .. code-block:: ring
164
165         See "Day Name : " + TimeList()[2]       # Sunday
166
167 用例:
168
169 .. code-block:: ring
170
171         See "Month Name : " + TimeList()[4]     # May
172
173 .. index:: 
174         pair: 日付と時刻; AddDays()
175
176 AddDays() 関数
177 ==============
178
179 文法:
180
181 .. code-block:: ring
182
183         AddDays(cDate,nDays) ---> cDate から  nDays 後の日付です。
184
185 用例:
186
187 .. code-block:: ring
188
189         cDate = date()
190         see cDate + nl                  # 24/05/2015
191         cDate = adddays(cDate,10)
192         see cDate + nl                  # 03/06/2015
193
194 .. index:: 
195         pair: 日付と時刻; DiffDays()
196
197 DiffDays() 関数
198 ===============
199
200 文法:
201
202 .. code-block:: ring
203
204         DiffDays(cDate1,cDate2) ---> 日数 (Date1 - Date2)
205
206 用例:
207
208 .. code-block:: ring
209
210         cDate1 = date()
211         see cDate1 + nl                                         # 24/05/2015
212         cDate2 = adddays(cDate1,10)
213         see cDate2 + nl                                         # 03/06/2015
214         see "DiffDays = " + diffdays(cDate1,cDate2) + nl        # -10
215         see "DiffDays = " + diffdays(cDate2,cDate1) + nl        # 10
216         
217 .. index:: 
218         pair: 日付と時刻; EpochTime()
219
220 EpochTime() 関数
221 ====================
222
223 文法:
224
225 .. code-block:: ring
226
227         EpochTime( cDate, cTime ) ---> エポック秒
228
229 用例:
230
231 .. code-block:: ring
232
233         ###-------------------------------------------------------------
234         # EpochTime()
235         # 用例    ---   EpochSec = EpochTime( Date(), Time() )
236         # 呼び出し形式: EpochSec = EpochTime( "15/07/2016", "10:15:30" )
237         #               EpochSec = 1468577730
238         #---------------------------------------------------------------
239         
240         Func EpochTime(Date, Time)
241                 
242             arrayDate = split(Date, "/")
243             arrayTime = split(Time, ":")
244                 
245             Year = arrayDate[3] ; Month  = arrayDate[2] ; Day    = arrayDate[1]
246             Hour = arrayTime[1] ; Minute = arrayTime[2] ; Second = arrayTime[3]
247                 
248             cDate1    = Day +"/"+ Month +"/"+ Year
249             cDate2    = "01/01/" + Year
250             DayOfYear = DiffDays( cDate1, cDate2)
251                 
252             ### 数式
253             tm_sec  = Second    * 1
254             tm_min  = Minute    * 60
255             tm_hour = Hour      * 3600
256             tm_yday = DayOfYear * 86400
257             tm_year = Year      - 1900
258                 
259             tm_year1 =         ( tm_year -  70)          * 31536000
260             tm_year2 = ( floor(( tm_year -  69) /   4 )) * 86400
261             tm_year3 = ( floor(( tm_year -   1) / 100 )) * 86400
262             tm_year4 = ( floor(( tm_year + 299) / 400 )) * 86400
263                 
264             ### 結果
265             EpochSec = tm_sec + tm_min + tm_hour + tm_yday + tm_year1 + tm_year2 - tm_year3 + tm_year4
266
267         return EpochSec
268