xref: /llvm-project/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/main.cpp (revision e481f565286e7fbf5dda9c4a0d00ca1daae8abeb)
1 #include <chrono>
2 #include <iostream>
3 
main()4 int main() {
5   // break here
6   std::chrono::nanoseconds ns{1};
7   std::chrono::microseconds us{12};
8   std::chrono::milliseconds ms{123};
9   std::chrono::seconds s{1234};
10   std::chrono::minutes min{12345};
11   std::chrono::hours h{123456};
12 
13   std::chrono::days d{654321};
14   std::chrono::weeks w{54321};
15   std::chrono::months m{4321};
16   std::chrono::years y{321};
17 
18   // sys_seconds aliasses
19   std::chrono::time_point<std::chrono::system_clock, std::chrono::seconds>
20       ss_tp{std::chrono::seconds{0}};
21   std::chrono::time_point<std::chrono::system_clock,
22                           std::chrono::duration<long long>>
23       ss_tp_d{std::chrono::seconds{0}};
24   std::chrono::time_point<std::chrono::system_clock,
25                           std::chrono::duration<long long, std::ratio<1>>>
26       ss_tp_d_r{std::chrono::seconds{0}};
27   std::chrono::time_point<std::chrono::system_clock,
28                           std::chrono::duration<long long, std::ratio<1>>>
29       ss_tp_d_r2{std::chrono::seconds{0}};
30 
31   // sys_seconds
32   std::chrono::sys_seconds ss_0{std::chrono::seconds{0}};
33   std::chrono::sys_seconds ss_neg_date_time{
34       std::chrono::seconds{-1'096'193'779'200}};
35   std::chrono::sys_seconds ss_neg_seconds{
36       std::chrono::seconds{-1'096'193'779'201}};
37   std::chrono::sys_seconds ss_pos_date_time{
38       std::chrono::seconds{971'890'963'199}};
39   std::chrono::sys_seconds ss_pos_seconds{
40       std::chrono::seconds{971'890'963'200}};
41   std::chrono::sys_seconds ss_min{
42       std::chrono::seconds{std::numeric_limits<long long>::min()}};
43   std::chrono::sys_seconds ss_max{
44       std::chrono::seconds{std::numeric_limits<long long>::max()}};
45 
46   // sys_days aliasses
47   std::chrono::time_point<std::chrono::system_clock, std::chrono::days> sd_tp{
48       std::chrono::days{0}};
49   std::chrono::time_point<std::chrono::system_clock,
50                           std::chrono::duration<int, std::ratio<86400>>>
51       sd_tp_d_r{std::chrono::days{0}};
52   std::chrono::time_point<std::chrono::system_clock,
53                           std::chrono::duration<int, std::ratio<86400, 1>>>
54       sd_tp_d_r2{std::chrono::days{0}};
55 
56   // sys_days
57   std::chrono::sys_days sd_0{std::chrono::days{0}};
58 
59   std::chrono::sys_days sd_neg_date{std::chrono::days{-12'687'428}};
60   std::chrono::sys_days sd_neg_days{std::chrono::days{-12'687'429}};
61 
62   std::chrono::sys_days sd_pos_date{std::chrono::days{11'248'737}};
63   std::chrono::sys_days sd_pos_days{std::chrono::days{11'248'738}};
64 
65   std::chrono::sys_days sd_min{
66       std::chrono::days{std::numeric_limits<int>::min()}};
67   std::chrono::sys_days sd_max{
68       std::chrono::days{std::numeric_limits<int>::max()}};
69 
70   // local_seconds aliasses
71   std::chrono::time_point<std::chrono::local_t, std::chrono::seconds> ls_tp{
72       std::chrono::seconds{0}};
73   std::chrono::time_point<std::chrono::local_t,
74                           std::chrono::duration<long long>>
75       ls_tp_d{std::chrono::seconds{0}};
76   std::chrono::time_point<std::chrono::local_t,
77                           std::chrono::duration<long long, std::ratio<1>>>
78       ls_tp_d_r{std::chrono::seconds{0}};
79   std::chrono::time_point<std::chrono::local_t,
80                           std::chrono::duration<long long, std::ratio<1>>>
81       ls_tp_d_r2{std::chrono::seconds{0}};
82 
83   // local_seconds
84   std::chrono::local_seconds ls_0{std::chrono::seconds{0}};
85   std::chrono::local_seconds ls_neg_date_time{
86       std::chrono::seconds{-1'096'193'779'200}};
87   std::chrono::local_seconds ls_neg_seconds{
88       std::chrono::seconds{-1'096'193'779'201}};
89   std::chrono::local_seconds ls_pos_date_time{
90       std::chrono::seconds{971'890'963'199}};
91   std::chrono::local_seconds ls_pos_seconds{
92       std::chrono::seconds{971'890'963'200}};
93   std::chrono::local_seconds ls_min{
94       std::chrono::seconds{std::numeric_limits<long long>::min()}};
95   std::chrono::local_seconds ls_max{
96       std::chrono::seconds{std::numeric_limits<long long>::max()}};
97 
98   // local_days aliasses
99   std::chrono::time_point<std::chrono::local_t, std::chrono::days> ld_tp{
100       std::chrono::days{0}};
101   std::chrono::time_point<std::chrono::local_t,
102                           std::chrono::duration<int, std::ratio<86400>>>
103       ld_tp_d_r{std::chrono::days{0}};
104   std::chrono::time_point<std::chrono::local_t,
105                           std::chrono::duration<int, std::ratio<86400, 1>>>
106       ld_tp_d_r2{std::chrono::days{0}};
107 
108   // local_days
109   std::chrono::local_days ld_0{std::chrono::days{0}};
110 
111   std::chrono::local_days ld_neg_date{std::chrono::days{-12'687'428}};
112   std::chrono::local_days ld_neg_days{std::chrono::days{-12'687'429}};
113 
114   std::chrono::local_days ld_pos_date{std::chrono::days{11'248'737}};
115   std::chrono::local_days ld_pos_days{std::chrono::days{11'248'738}};
116 
117   std::chrono::local_days ld_min{
118       std::chrono::days{std::numeric_limits<int>::min()}};
119   std::chrono::local_days ld_max{
120       std::chrono::days{std::numeric_limits<int>::max()}};
121 
122   std::chrono::day d_0{0};
123   std::chrono::day d_1{1};
124   std::chrono::day d_31{31};
125   std::chrono::day d_255{255};
126 
127   std::chrono::month jan = std::chrono::January;
128   std::chrono::month feb = std::chrono::February;
129   std::chrono::month mar = std::chrono::March;
130   std::chrono::month apr = std::chrono::April;
131   std::chrono::month may = std::chrono::May;
132   std::chrono::month jun = std::chrono::June;
133   std::chrono::month jul = std::chrono::July;
134   std::chrono::month aug = std::chrono::August;
135   std::chrono::month sep = std::chrono::September;
136   std::chrono::month oct = std::chrono::October;
137   std::chrono::month nov = std::chrono::November;
138   std::chrono::month dec = std::chrono::December;
139 
140   std::chrono::month month_0{0};
141   std::chrono::month month_1{1};
142   std::chrono::month month_2{2};
143   std::chrono::month month_3{3};
144   std::chrono::month month_4{4};
145   std::chrono::month month_5{5};
146   std::chrono::month month_6{6};
147   std::chrono::month month_7{7};
148   std::chrono::month month_8{8};
149   std::chrono::month month_9{9};
150   std::chrono::month month_10{10};
151   std::chrono::month month_11{11};
152   std::chrono::month month_12{12};
153   std::chrono::month month_13{13};
154   std::chrono::month month_255{255};
155 
156   std::chrono::year y_min{std::chrono::year::min()};
157   std::chrono::year y_0{0};
158   std::chrono::year y_1970{1970};
159   std::chrono::year y_2038{2038};
160   std::chrono::year y_max{std::chrono::year::max()};
161 
162   std::chrono::weekday sun = std::chrono::Sunday;
163   std::chrono::weekday mon = std::chrono::Monday;
164   std::chrono::weekday tue = std::chrono::Tuesday;
165   std::chrono::weekday wed = std::chrono::Wednesday;
166   std::chrono::weekday thu = std::chrono::Thursday;
167   std::chrono::weekday fri = std::chrono::Friday;
168   std::chrono::weekday sat = std::chrono::Saturday;
169 
170   std::chrono::weekday weekday_0{0};
171   std::chrono::weekday weekday_1{1};
172   std::chrono::weekday weekday_2{2};
173   std::chrono::weekday weekday_3{3};
174   std::chrono::weekday weekday_4{4};
175   std::chrono::weekday weekday_5{5};
176   std::chrono::weekday weekday_6{6};
177   std::chrono::weekday weekday_7{7};
178   std::chrono::weekday weekday_8{8};
179   std::chrono::weekday weekday_255{255};
180 
181   std::chrono::weekday_indexed wdi_saturday_0{std::chrono::Saturday, 0};
182   std::chrono::weekday_indexed wdi_monday_1{std::chrono::Monday, 1};
183   std::chrono::weekday_indexed wdi_invalid{std::chrono::weekday{255}, 255};
184 
185   std::chrono::weekday_last wdl_monday{std::chrono::Monday};
186   std::chrono::weekday_last wdl_invalid{std::chrono::weekday{255}};
187 
188   std::chrono::month_day md_new_years_eve{std::chrono::December / 31};
189   std::chrono::month_day md_new_year{std::chrono::January / 1};
190   std::chrono::month_day md_invalid{std::chrono::month{255} / 255};
191 
192   std::chrono::month_day_last mdl_jan{std::chrono::January};
193   std::chrono::month_day_last mdl_new_years_eve{std::chrono::December};
194 
195   std::chrono::month_weekday mwd_first_thursday{
196       std::chrono::January,
197       std::chrono::weekday_indexed{std::chrono::Thursday, 1}};
198 
199   std::chrono::month_weekday_last mwdl_last_saturday{
200       std::chrono::December, std::chrono::weekday_last{std::chrono::Saturday}};
201 
202   std::chrono::year_month ym_year_zero{std::chrono::year{0},
203                                        std::chrono::January};
204 
205   std::chrono::year_month_day ymd_bc{std::chrono::year{-1}, std::chrono::March,
206                                      std::chrono::day{255}};
207   std::chrono::year_month_day ymd_year_zero{
208       std::chrono::year{0}, std::chrono::month{255}, std::chrono::day{25}};
209   std::chrono::year_month_day ymd_unix_epoch{
210       std::chrono::year{1970}, std::chrono::January, std::chrono::day{1}};
211 
212   std::chrono::year_month_day_last ymdl_bc{
213       std::chrono::year{-1},
214       std::chrono::month_day_last{std::chrono::December}};
215   std::chrono::year_month_day_last ymdl_may_1970{
216       std::chrono::year{1970}, std::chrono::month_day_last{std::chrono::May}};
217 
218   std::chrono::year_month_weekday ymwd_bc{
219       std::chrono::year{-1}, std::chrono::June,
220       std::chrono::weekday_indexed{std::chrono::Wednesday, 2}};
221   std::chrono::year_month_weekday ymwd_forth_tuesday_2024{
222       std::chrono::year{2024}, std::chrono::January,
223       std::chrono::weekday_indexed{std::chrono::Tuesday, 4}};
224 
225   std::chrono::year_month_weekday_last ymwdl_bc{
226       std::chrono::year{-1}, std::chrono::April,
227       std::chrono::weekday_last{std::chrono::Friday}};
228   std::chrono::year_month_weekday_last ymwdl_2024_last_tuesday_january{
229       std::chrono::year{2024}, std::chrono::January,
230       std::chrono::weekday_last{std::chrono::Tuesday}};
231 
232   std::cout << "break here\n";
233 }
234