42static const auto epoch =
static_cast<unsigned>(2121446);
43static const auto days_in_era =
static_cast<unsigned>(1029983);
60using years = std::chrono::duration
218template<class CharT, class Traits>
219std::basic_ostream<CharT, Traits>&
220operator<<(std::basic_ostream<CharT, Traits>& os, const
day& d);
256template<class CharT, class Traits>
257std::basic_ostream<CharT, Traits>&
258operator<<(std::basic_ostream<CharT, Traits>& os, const
month& m);
299template<class CharT, class Traits>
300std::basic_ostream<CharT, Traits>&
301operator<<(std::basic_ostream<CharT, Traits>& os, const
year& y);
341template<class CharT, class Traits>
342std::basic_ostream<CharT, Traits>&
343operator<<(std::basic_ostream<CharT, Traits>& os, const
weekday& wd);
364template<class CharT, class Traits>
365std::basic_ostream<CharT, Traits>&
366operator<<(std::basic_ostream<CharT, Traits>& os, const
weekday_indexed& wdi);
385template<class CharT, class Traits>
386std::basic_ostream<CharT, Traits>&
387operator<<(std::basic_ostream<CharT, Traits>& os, const
weekday_last& wdl);
427template<class CharT, class Traits>
428std::basic_ostream<CharT, Traits>&
429operator<<(std::basic_ostream<CharT, Traits>& os, const
year_month& ym);
455template<class CharT, class Traits>
456std::basic_ostream<CharT, Traits>&
457operator<<(std::basic_ostream<CharT, Traits>& os, const
month_day& md);
480template<class CharT, class Traits>
481std::basic_ostream<CharT, Traits>&
482operator<<(std::basic_ostream<CharT, Traits>& os, const
month_day_last& mdl);
504template<class CharT, class Traits>
505std::basic_ostream<CharT, Traits>&
506operator<<(std::basic_ostream<CharT, Traits>& os, const
month_weekday& mwd);
531template<class CharT, class Traits>
532std::basic_ostream<CharT, Traits>&
584template<class CharT, class Traits>
585std::basic_ostream<CharT, Traits>&
586operator<<(std::basic_ostream<CharT, Traits>& os, const
year_month_day& ymd);
652template<class CharT, class Traits>
653std::basic_ostream<CharT, Traits>&
720template<class CharT, class Traits>
721std::basic_ostream<CharT, Traits>&
787template<class CharT, class Traits>
788std::basic_ostream<CharT, Traits>&
791#if !defined(_MSC_VER) || (_MSC_VER >= 1900)
792inline namespace literals
822 return static_cast<unsigned>(x) ==
static_cast<unsigned>(y);
838 return static_cast<unsigned>(x) <
static_cast<unsigned>(y);
870 return days{
static_cast<days::rep
>(
static_cast<unsigned>(x)
871 -
static_cast<unsigned>(y))};
879 return day{
static_cast<unsigned>(x) +
static_cast<unsigned>(y.count())};
898template<
class CharT,
class Traits>
900std::basic_ostream<CharT, Traits>&
901operator<<(std::basic_ostream<CharT, Traits>& os,
const day& d)
907 os << static_cast<unsigned>(d);
945 return static_cast<unsigned>(x) ==
static_cast<unsigned>(y);
961 return static_cast<unsigned>(x) <
static_cast<unsigned>(y);
993 auto const d =
static_cast<unsigned>(x) -
static_cast<unsigned>(y);
994 return months(d <= 11 ? d : d + 12);
1002 auto const mu =
static_cast<long long>(
static_cast<unsigned>(x)) - 1 + y.count();
1003 auto const yr = (
mu >= 0 ?
mu :
mu-11) / 12;
1004 return month{
static_cast<unsigned>(
mu - yr * 12 + 1)};
1023template<
class CharT,
class Traits>
1025std::basic_ostream<CharT, Traits>&
1026operator<<(std::basic_ostream<CharT, Traits>& os,
const month& m)
1028 switch (
static_cast<unsigned>(m))
1034 os <<
"Ordibehesht";
1067 os << static_cast<unsigned>(m) <<
" is not a valid month";
1088 using namespace internal;
1089 auto const y =
static_cast<int>(y_)-475;
1091 auto const era =
static_cast<int>(era_d);
1092 auto const yoe =
static_cast<unsigned>(y - era *
years_in_era);
1097 auto const yoc = (yoe < (22 * 128)) ? ((yoe%128) < 29 ? yoe%128 : (yoe%128 - 29)%33) : yoe - (22 * 128) + 33;
1098 return (yoc != 0 && (yoc%4)==0);
1125 return static_cast<int>(x) ==
static_cast<int>(y);
1141 return static_cast<int>(x) <
static_cast<int>(y);
1173 return years{
static_cast<int>(x) -
static_cast<int>(y)};
1181 return year{
static_cast<int>(x) + y.count()};
1197 return year{
static_cast<int>(x) - y.count()};
1200template<
class CharT,
class Traits>
1202std::basic_ostream<CharT, Traits>&
1203operator<<(std::basic_ostream<CharT, Traits>& os,
const year& y)
1208 os.width(4 + (y < year{0}));
1209 os << static_cast<int>(y);
1220 auto u =
static_cast<unsigned>(z);
1221 return static_cast<unsigned char>(z >= -4 ? (u+4) % 7 : u % 7);
1227 : wd_(
static_cast<decltype(wd_)
>(wd != 7 ? wd : 0))
1233 : wd_(weekday_from_days(dp.time_since_epoch().count()))
1239 : wd_(weekday_from_days(dp.time_since_epoch().count()))
1269 return static_cast<unsigned>(wd_);
1279 return static_cast<unsigned>(x) ==
static_cast<unsigned>(y);
1295 auto const diff =
static_cast<unsigned>(x) -
static_cast<unsigned>(y);
1296 return days{diff <= 6 ? diff : diff + 7};
1304 auto const wdu =
static_cast<long long>(
static_cast<unsigned>(x)) + y.count();
1305 auto const wk = (wdu >= 0 ? wdu : wdu-6) / 7;
1306 return weekday{
static_cast<unsigned>(wdu - wk * 7)};
1325template<
class CharT,
class Traits>
1327std::basic_ostream<CharT, Traits>&
1328operator<<(std::basic_ostream<CharT, Traits>& os,
const weekday& wd)
1330 switch (
static_cast<unsigned>(wd))
1342 os <<
"Chaharshanbe";
1354 os << static_cast<unsigned>(wd) <<
" is not a valid weekday";
1360#if !defined(_MSC_VER) || (_MSC_VER >= 1900)
1361inline namespace literals
1425#if !defined(_MSC_VER) || (_MSC_VER >= 1900)
1446 return weekday().
ok() && 1 <= index_ && index_ <= 5;
1452 : wd_(
static_cast<decltype(wd_)
>(
static_cast<unsigned>(wd)))
1453 , index_(
static_cast<decltype(index_)
>(index))
1456template<
class CharT,
class Traits>
1458std::basic_ostream<CharT, Traits>&
1461 return os << wdi.
weekday() <<
'[' << wdi.
index() <<
']';
1469 return {*
this, index};
1477 return x.weekday() == y.weekday() && x.index() == y.index();
1499 return x.weekday() == y.weekday();
1510template<
class CharT,
class Traits>
1512std::basic_ostream<CharT, Traits>&
1513operator<<(std::basic_ostream<CharT, Traits>& os,
const weekday_last& wdl)
1515 return os << wdl.weekday() <<
"[last]";
1580 return x.year() == y.year() && x.month() == y.month();
1596 return x.year() < y.year() ? true
1597 : (x.year() > y.year() ? false
1598 : (x.month() < y.month()));
1630 auto dmi =
static_cast<int>(
static_cast<unsigned>(ym.month())) - 1 + dm.count();
1631 auto dy = (dmi >= 0 ? dmi : dmi-11) / 12;
1632 dmi = dmi - dy * 12 + 1;
1633 return (ym.year() +
years(dy)) /
month(
static_cast<unsigned>(dmi));
1657 return (x.year() - y.year()) +
1658 months(
static_cast<unsigned>(x.month()) -
static_cast<unsigned>(y.month()));
1666 return (ym.year() + dy) / ym.month();
1685template<
class CharT,
class Traits>
1687std::basic_ostream<CharT, Traits>&
1688operator<<(std::basic_ostream<CharT, Traits>& os,
const year_month& ym)
1690 return os << ym.year() <<
'/' << ym.month();
1724 return x.month() == y.month() && x.day() == y.day();
1740 return x.month() < y.month() ? true
1741 : (x.month() > y.month() ? false
1742 : (x.day() < y.day()));
1769template<
class CharT,
class Traits>
1771std::basic_ostream<CharT, Traits>&
1772operator<<(std::basic_ostream<CharT, Traits>& os,
const month_day& md)
1774 return os << md.month() <<
'/' << md.day();
1788 return x.month() == y.month();
1804 return x.month() < y.month();
1831template<
class CharT,
class Traits>
1833std::basic_ostream<CharT, Traits>&
1834operator<<(std::basic_ostream<CharT, Traits>& os,
const month_day_last& mdl)
1836 return os << mdl.month() <<
"/last";
1864 return m_.
ok() && wdi_.
ok();
1872 return x.month() == y.month() && x.weekday_indexed() == y.weekday_indexed();
1883template<
class CharT,
class Traits>
1885std::basic_ostream<CharT, Traits>&
1886operator<<(std::basic_ostream<CharT, Traits>& os,
const month_weekday& mwd)
1888 return os << mwd.month() <<
'/' << mwd.weekday_indexed();
1916 return m_.
ok() && wdl_.
ok();
1924 return x.month() == y.month() && x.weekday_last() == y.weekday_last();
1935template<
class CharT,
class Traits>
1937std::basic_ostream<CharT, Traits>&
1938operator<<(std::basic_ostream<CharT, Traits>& os,
const month_weekday_last& mwdl)
1940 return os << mwdl.month() <<
'/' << mwdl.weekday_last();
2034 return y_.
ok() && mdl_.
ok();
2042 return x.year() == y.year() && x.month_day_last() == y.month_day_last();
2058 return x.year() < y.year() ? true
2059 : (x.year() > y.year() ? false
2060 : (x.month_day_last() < y.month_day_last()));
2087template<
class CharT,
class Traits>
2089std::basic_ostream<CharT, Traits>&
2090operator<<(std::basic_ostream<CharT, Traits>& os,
const year_month_day_last& ymdl)
2092 return os << ymdl.year() <<
'/' << ymdl.month_day_last();
2100 return (ymdl.year() / ymdl.month() + dm) /
last;
2116 return ymdl + (-dm);
2124 return {ymdl.year()+dy, ymdl.month_day_last()};
2140 return ymdl + (-dy);
2219 static_assert(std::numeric_limits<unsigned>::digits >= 18,
2220 "This algorithm has not been ported to a 16 bit unsigned integer");
2221 static_assert(std::numeric_limits<int>::digits >= 20,
2222 "This algorithm has not been ported to a 16 bit signed integer");
2224 using namespace internal;
2225 auto const y =
static_cast<int>(y_) - 475;
2226 auto const m =
static_cast<unsigned>(m_);
2227 auto const d =
static_cast<unsigned>(
d_);
2229 auto const era =
static_cast<int>(era_d);
2231 auto const yoe =
static_cast<int>(y - era *
years_in_era);
2234 auto const period =
static_cast<unsigned>(period_d);
2240 auto const group = yoc < 1 ? 0 : static_cast<unsigned>((yoc-1) / 4);
2241 auto const yog =
static_cast<int>(yoc < 1 ? -1 : (yoc-1) % 4);
2242 auto const fdoyog = group*1461 + (yog+1)*365;
2243 auto const fdoyoe = fdop + fdoc + fdoyog;
2245 auto const doy = 30*(m-1) + ((m > 6) ? 6 : m-1) + d-1;
2246 auto const doe = fdoe + fdoyoe + doy;
2269 if (!(y_.
ok() && m_.
ok()))
2279 return x.year() == y.year() && x.month() == y.month() && x.day() == y.day();
2295 return x.year() < y.year() ? true
2296 : (x.year() > y.year() ? false
2297 : (x.month() < y.month() ? true
2298 : (x.month() > y.month() ? false
2299 : (x.day() < y.day()))));
2326template<
class CharT,
class Traits>
2328std::basic_ostream<CharT, Traits>&
2329operator<<(std::basic_ostream<CharT, Traits>& os,
const year_month_day& ymd)
2334 os << ymd.year() <<
'-';
2336 os << static_cast<unsigned>(ymd.month()) <<
'-';
2346 static_assert(std::numeric_limits<unsigned>::digits >= 18,
2347 "This algorithm has not been ported to a 16 bit unsigned integer");
2348 static_assert(std::numeric_limits<int>::digits >= 20,
2349 "This algorithm has not been ported to a 16 bit signed integer");
2351 using namespace internal;
2353 auto const delta =
static_cast<int>(z -
epoch);
2354 auto const era =
static_cast<int>(delta >= 0 ? delta : delta-
days_in_era+1) /
static_cast<double>(
days_in_era);
2355 auto const era_i =
static_cast<int>(era);
2356 auto const fdoe =
static_cast<int>(
epoch +
static_cast<int>(era_i *
days_in_era));
2358 auto const doe_fdoe = z - fdoe;
2363 auto const group = doc < 365 && period != 22 ? -1 :
static_cast<int>(((doc < 365 ? 365 : doc)-365)/1461);
2364 auto const yog = doc < 365 && period != 22 ? -1 :
static_cast<int>( (period != 22 ? ((doc-365 )%1461) : doc)/365);
2365 auto const yoc = group == -1 ? 0 : (period != 22 ? 1 : 0) + group*4 + (yog == 4 ? 3 : yog);
2366 auto const doy = group == -1 ? doc : (period != 22 ? ((yoc-1)%4 == 0 ? (group >= 0 ? (doe_fdoe -
2369 (group*1461 + ((yog == 4 ? 3 : yog)+1)*365))
2374 (group*1461 + ((yog == 4 ? 3 : yog)+1)*365))
2375 : (yog == 4 ? 365 : doe_fdoe - (period*
days_in_period) - yog*365));
2382 auto const y =
static_cast<int>(
static_cast<sys_days::rep
>(yoe) + 475 + era_i *
years_in_era);
2383 auto const m = doy < 186 ? doy/31 + 1 : (doy-186)/30 + 7;
2384 auto const d = doy - (30*(m-1) + ((m > 6) ? 6 : m-1) - 1);
2394 return (ymd.year() / ymd.month() + dm) / ymd.day();
2418 return (ymd.year() + dy) / ymd.month() / ymd.day();
2513 return wdi_.
index();
2545 if (wdi_.
index() <= 4)
2548 return static_cast<unsigned>(d2.count()) <=
static_cast<unsigned>((y_/m_/
last).day());
2559 return {ymd.year(), ymd.month(), wd[(
static_cast<unsigned>(ymd.day())-1)/7+1]};
2569 ).time_since_epoch();
2577 return x.year() == y.year() && x.month() == y.month() &&
2578 x.weekday_indexed() == y.weekday_indexed();
2589template<
class CharT,
class Traits>
2591std::basic_ostream<CharT, Traits>&
2592operator<<(std::basic_ostream<CharT, Traits>& os,
const year_month_weekday& ymwdi)
2594 return os << ymwdi.year() <<
'/' << ymwdi.month()
2595 <<
'/' << ymwdi.weekday_indexed();
2603 return (ymwd.year() / ymwd.month() + dm) / ymwd.weekday_indexed();
2619 return ymwd + (-dm);
2627 return {ymwd.year()+dy, ymwd.month(), ymwd.weekday_indexed()};
2643 return ymwd + (-dy);
2732 return y_.
ok() && m_.
ok() && wdl_.
ok();
2749 return x.year() == y.year() && x.month() == y.month() &&
2750 x.weekday_last() == y.weekday_last();
2761template<
class CharT,
class Traits>
2763std::basic_ostream<CharT, Traits>&
2764operator<<(std::basic_ostream<CharT, Traits>& os,
const year_month_weekday_last& ymwdl)
2766 return os << ymwdl.year() <<
'/' << ymwdl.month() <<
'/' << ymwdl.weekday_last();
2771year_month_weekday_last
2774 return (ymwdl.year() / ymwdl.month() + dm) / ymwdl.weekday_last();
2779year_month_weekday_last
2787year_month_weekday_last
2790 return ymwdl + (-dm);
2795year_month_weekday_last
2798 return {ymwdl.year()+dy, ymwdl.month(), ymwdl.weekday_last()};
2803year_month_weekday_last
2811year_month_weekday_last
2814 return ymwdl + (-dy);
2832 return y /
month(
static_cast<unsigned>(m));
2858 return m /
day(
static_cast<unsigned>(d));
2866 return month(
static_cast<unsigned>(m)) / d;
2894 return month(
static_cast<unsigned>(m))/
last;
2928 return month(
static_cast<unsigned>(m)) / wdi;
2962 return month(
static_cast<unsigned>(m)) / wdl;
2980 return {ym.year(), ym.month(), d};
2988 return ym /
day(
static_cast<unsigned>(d));
2996 return y / md.month() / md.day();
3004 return year(y) / md;
3020 return year(y) / md;
3046 return year(y) / mdl;
3062 return year(y) / mdl;
3072 return {ym.year(), ym.month(), wdi};
3080 return {y, mwd.month(), mwd.weekday_indexed()};
3088 return year(y) / mwd;
3104 return year(y) / mwd;
3111year_month_weekday_last
3114 return {ym.year(), ym.month(), wdl};
3119year_month_weekday_last
3122 return {y, mwdl.month(), mwdl.weekday_last()};
3127year_month_weekday_last
3130 return year(y) / mwdl;
3135year_month_weekday_last
3143year_month_weekday_last
3146 return year(y) / mwdl;
CONSTCD14 day & operator--() NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD14 day & operator-=(const days &d) NOEXCEPT
CONSTCD14 day & operator++() NOEXCEPT
CONSTCD14 day & operator+=(const days &d) NOEXCEPT
CONSTCD11 solar_hijri::month month() const NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD11 solar_hijri::day day() const NOEXCEPT
CONSTCD14 bool ok() const NOEXCEPT
CONSTCD11 solar_hijri::month month() const NOEXCEPT
month_weekday_last()=default
CONSTCD11 solar_hijri::month month() const NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
solar_hijri::weekday_last wdl_
CONSTCD11 solar_hijri::weekday_last weekday_last() const NOEXCEPT
solar_hijri::weekday_indexed wdi_
CONSTCD11 solar_hijri::weekday_indexed weekday_indexed() const NOEXCEPT
CONSTCD11 solar_hijri::month month() const NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD14 month & operator+=(const months &m) NOEXCEPT
CONSTCD14 month & operator-=(const months &m) NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD14 month & operator--() NOEXCEPT
CONSTCD14 month & operator++() NOEXCEPT
weekday_indexed()=default
CONSTCD11 unsigned index() const NOEXCEPT
CONSTCD11 solar_hijri::weekday weekday() const NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD11 solar_hijri::weekday weekday() const NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD14 weekday & operator--() NOEXCEPT
CONSTCD14 weekday & operator-=(const days &d) NOEXCEPT
CONSTCD14 weekday & operator++() NOEXCEPT
CONSTCD14 weekday & operator+=(const days &d) NOEXCEPT
CONSTCD11 weekday_indexed operator[](unsigned index) const NOEXCEPT
static CONSTCD11 unsigned char weekday_from_days(int z) NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD11 solar_hijri::year year() const NOEXCEPT
CONSTCD14 solar_hijri::day day() const NOEXCEPT
CONSTCD14 year_month_day_last & operator+=(const months &m) NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD11 solar_hijri::month month() const NOEXCEPT
CONSTCD14 year_month_day_last & operator-=(const months &m) NOEXCEPT
CONSTCD11 solar_hijri::month_day_last month_day_last() const NOEXCEPT
solar_hijri::month_day_last mdl_
year_month_day_last()=default
CONSTCD11 solar_hijri::month month() const NOEXCEPT
CONSTCD14 year_month_day & operator+=(const months &m) NOEXCEPT
CONSTCD14 bool ok() const NOEXCEPT
CONSTCD11 solar_hijri::year year() const NOEXCEPT
CONSTCD14 year_month_day & operator-=(const months &m) NOEXCEPT
CONSTCD11 solar_hijri::day day() const NOEXCEPT
CONSTCD14 days to_days() const NOEXCEPT
static CONSTCD14 year_month_day from_days(days dp) NOEXCEPT
CONSTCD14 days to_days() const NOEXCEPT
CONSTCD11 solar_hijri::weekday_last weekday_last() const NOEXCEPT
CONSTCD11 solar_hijri::year year() const NOEXCEPT
CONSTCD14 year_month_weekday_last & operator-=(const months &m) NOEXCEPT
solar_hijri::weekday_last wdl_
CONSTCD11 solar_hijri::weekday weekday() const NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD14 year_month_weekday_last & operator+=(const months &m) NOEXCEPT
CONSTCD11 solar_hijri::month month() const NOEXCEPT
year_month_weekday_last()=default
solar_hijri::weekday_indexed wdi_
CONSTCD14 year_month_weekday & operator-=(const months &m) NOEXCEPT
CONSTCD11 solar_hijri::weekday_indexed weekday_indexed() const NOEXCEPT
CONSTCD11 solar_hijri::month month() const NOEXCEPT
CONSTCD14 days to_days() const NOEXCEPT
CONSTCD11 unsigned index() const NOEXCEPT
CONSTCD11 solar_hijri::weekday weekday() const NOEXCEPT
CONSTCD11 solar_hijri::year year() const NOEXCEPT
CONSTCD14 bool ok() const NOEXCEPT
year_month_weekday()=default
CONSTCD14 year_month_weekday & operator+=(const months &m) NOEXCEPT
static CONSTCD14 year_month_weekday from_days(days dp) NOEXCEPT
CONSTCD14 year_month & operator-=(const months &dm) NOEXCEPT
CONSTCD11 solar_hijri::month month() const NOEXCEPT
CONSTCD11 solar_hijri::year year() const NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD14 year_month & operator+=(const months &dm) NOEXCEPT
CONSTCD14 year & operator+=(const years &y) NOEXCEPT
CONSTCD11 bool ok() const NOEXCEPT
CONSTCD14 year & operator++() NOEXCEPT
CONSTCD14 year & operator--() NOEXCEPT
CONSTCD14 year & operator-=(const years &y) NOEXCEPT
CONSTCD14 bool is_leap() const NOEXCEPT
static CONSTCD11 year max() NOEXCEPT
static CONSTCD11 year min() NOEXCEPT
decltype(std::ratio_divide< R1, R2 >{}) ratio_divide
decltype(std::ratio_multiply< R1, R2 >{}) ratio_multiply
CONSTDATA date::month dec
local_time< days > local_days
std::chrono::duration< int, detail::ratio_multiply< std::ratio< 7 >, days::period > > weeks
std::chrono::duration< int, detail::ratio_multiply< std::ratio< 24 >, std::chrono::hours::period > > days
sys_time< days > sys_days
Namespace for mathematical applications.
auto const days_in_first_cycle
static const auto days_in_era
auto const years_in_first_cycle
auto const days_in_other_cycles
static const auto years_in_era
auto const days_in_period
static const auto unix_time_shift
auto const years_in_other_cycles
auto const years_in_period
CONSTDATA solar_hijri::weekday pan
CONSTDATA solar_hijri::weekday dos
CONSTDATA solar_hijri::month sha
CONSTDATA solar_hijri::month Aban
CONSTDATA solar_hijri::month Esfand
CONSTDATA solar_hijri::month bah
CONSTDATA solar_hijri::month Azar
CONSTDATA solar_hijri::month kho
CONSTDATA solar_hijri::weekday Doshanbe
CONSTDATA solar_hijri::weekday Adine
CONSTDATA solar_hijri::weekday Panjshanbe
CONSTDATA solar_hijri::month far
CONSTDATA solar_hijri::month aba
CONSTDATA solar_hijri::weekday Seshanbe
CONSTDATA solar_hijri::weekday Yekshanbe
CONSTDATA solar_hijri::month mor
CONSTDATA solar_hijri::month Tir
CONSTDATA solar_hijri::month Dey
CONSTDATA solar_hijri::month esf
CONSTDATA solar_hijri::month aza
CONSTDATA solar_hijri::month Ordibehesht
CONSTDATA solar_hijri::weekday adi
CONSTDATA solar_hijri::weekday yek
CONSTDATA solar_hijri::month Bahman
CONSTDATA solar_hijri::month Mordad
CONSTDATA solar_hijri::month ord
CONSTDATA solar_hijri::weekday cha
CONSTDATA solar_hijri::month Shahrivar
CONSTDATA solar_hijri::month Farvardin
CONSTDATA solar_hijri::month dey
CONSTDATA solar_hijri::month Mehr
CONSTDATA solar_hijri::month tir
CONSTDATA solar_hijri::last_spec last
CONSTDATA solar_hijri::weekday Chaharshanbe
CONSTDATA solar_hijri::weekday ses
CONSTDATA solar_hijri::month meh
CONSTDATA solar_hijri::month Khordad
CONSTDATA solar_hijri::weekday Shanbe
CONSTDATA solar_hijri::weekday shn
CONSTCD11 bool operator<=(const day &x, const day &y) NOEXCEPT
CONSTCD11 bool operator!=(const day &x, const day &y) NOEXCEPT
CONSTCD11 bool operator>=(const day &x, const day &y) NOEXCEPT
date::local_days local_days
CONSTCD11 year_month operator/(const year &y, const month &m) NOEXCEPT
std::chrono::duration< int, date::detail::ratio_divide< years::period, std::ratio< 12 > > > months
CONSTCD11 bool operator<(const day &x, const day &y) NOEXCEPT
std::basic_ostream< CharT, Traits > & operator<<(std::basic_ostream< CharT, Traits > &os, const day &d)
CONSTCD11 bool operator==(const day &x, const day &y) NOEXCEPT
CONSTCD11 day operator-(const day &x, const days &y) NOEXCEPT
std::chrono::duration< int, date::detail::ratio_multiply< std::ratio< internal::days_in_era, internal::years_in_era >, days::period > > years
CONSTCD11 bool operator>(const day &x, const day &y) NOEXCEPT
CONSTCD11 day operator+(const day &x, const days &y) NOEXCEPT