LCOV - code coverage report
Current view: top level - opt/homebrew/include/boost/date_time/gregorian - greg_weekday.hpp (source / functions) Hit Total Coverage
Test: test_dash_coverage.info Lines: 0 4 0.0 %
Date: 2026-06-25 07:23:51 Functions: 0 8 0.0 %

          Line data    Source code
       1             : #ifndef GREG_WEEKDAY_HPP___
       2             : #define GREG_WEEKDAY_HPP___
       3             : 
       4             : /* Copyright (c) 2002,2003,2020 CrystalClear Software, Inc.
       5             :  * Use, modification and distribution is subject to the 
       6             :  * Boost Software License, Version 1.0. (See accompanying
       7             :  * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
       8             :  * Author: Jeff Garland, Bart Garst
       9             :  * $Date$
      10             :  */
      11             : 
      12             : #include <boost/date_time/constrained_value.hpp>
      13             : #include <boost/date_time/date_defs.hpp>
      14             : #include <boost/date_time/compiler_config.hpp>
      15             : #include <stdexcept>
      16             : #include <string>
      17             : 
      18             : namespace boost {
      19             : namespace gregorian {
      20             : 
      21             :   //bring enum values into the namespace
      22             :   using date_time::Sunday;
      23             :   using date_time::Monday;
      24             :   using date_time::Tuesday;
      25             :   using date_time::Wednesday;
      26             :   using date_time::Thursday;
      27             :   using date_time::Friday;
      28             :   using date_time::Saturday;
      29             : 
      30             : 
      31             :   //! Exception that flags that a weekday number is incorrect
      32             :   struct BOOST_SYMBOL_VISIBLE bad_weekday : public std::out_of_range
      33             :   {
      34           0 :     bad_weekday() : std::out_of_range(std::string("Weekday is out of range 0..6")) {}
      35             :   };
      36             :   typedef CV::simple_exception_policy<unsigned short, 0, 6, bad_weekday> greg_weekday_policies;
      37             :   typedef CV::constrained_value<greg_weekday_policies> greg_weekday_rep;
      38             : 
      39             : 
      40             :   //! Represent a day within a week (range 0==Sun to 6==Sat)
      41             :   class BOOST_SYMBOL_VISIBLE greg_weekday : public greg_weekday_rep {
      42             :   public:
      43             :     typedef boost::date_time::weekdays weekday_enum;
      44           0 :     BOOST_CXX14_CONSTEXPR greg_weekday(value_type day_of_week_num) :
      45           0 :       greg_weekday_rep(day_of_week_num)
      46           0 :     {}
      47             : 
      48             :     BOOST_CXX14_CONSTEXPR value_type as_number() const {return value_;}
      49             :     BOOST_CXX14_CONSTEXPR weekday_enum as_enum() const {return static_cast<weekday_enum>(value_);}
      50             : 
      51             :     //! Return a 3 digit english string of the day of week (eg: Sun)
      52             :     const char* as_short_string() const
      53             :     {
      54             :       static const char* const short_weekday_names[]
      55             :         = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
      56             : 
      57             :       return short_weekday_names[value_];
      58             :     }
      59             : 
      60             :     //! Return a point to a long english string representing day of week
      61             :     const char* as_long_string() const
      62             :     {
      63             :       static const char* const long_weekday_names[]
      64             :         = {"Sunday","Monday","Tuesday","Wednesday", "Thursday", "Friday", "Saturday"};
      65             : 
      66             :       return long_weekday_names[value_];
      67             :     }
      68             : 
      69             : 
      70             : #ifndef BOOST_NO_STD_WSTRING
      71             : 
      72             :     //! Return a 3 digit english wchar_t string of the day of week (eg: Sun)
      73             :     const wchar_t* as_short_wstring() const
      74             :     {
      75             :       static const wchar_t* const w_short_weekday_names[]={L"Sun", L"Mon", L"Tue",
      76             :                                                            L"Wed", L"Thu", L"Fri", L"Sat"};
      77             :       return w_short_weekday_names[value_];
      78             :     }
      79             : 
      80             :     //! Return a point to a long english wchar_t string representing day of week
      81             :     const wchar_t* as_long_wstring()  const
      82             :     {
      83             :       static const wchar_t* const w_long_weekday_names[]= {L"Sunday",L"Monday",L"Tuesday",
      84             :                                                            L"Wednesday", L"Thursday",
      85             :                                                            L"Friday", L"Saturday"};
      86             :       return w_long_weekday_names[value_];
      87             :     }
      88             : 
      89             : #endif // BOOST_NO_STD_WSTRING
      90             : 
      91             : 
      92             :   };
      93             : 
      94             : 
      95             : 
      96             : } } //namespace gregorian
      97             : 
      98             : 
      99             : 
     100             : #endif

Generated by: LCOV version 1.16