id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 7840,Failure in posix_time_zone when specifying start date as Jn,andrew.lang@…,az_sw_dude,"If you use the time zone specification ""CST-2CDT,J365/00,J1/00"" to create a boost::local_time::posix_time_zone, it fails with an exception. The problem appears to be in boost\date_time\local_time\posix_time_zone.hpp, julian_no_leap(...). The conversion of the start date uses this loop which has a ""less than or equal"" clause: while(sd >= calendar::end_of_month_day(year,sm)){ sd -= calendar::end_of_month_day(year,sm++); } sd is the converted start specifier (365 in this case); sm is the current month (initialized to 1). The loop continues until sd=0 and sm=13, at which point end_of_month_day() throws an exception. Conversion of the end date uses an almost identical loop except that its while clause is ""strictly less than"": while(ed > calendar::end_of_month_day(year,em)){ ed -= calendar::end_of_month_day(year,em++); } So the specifier ""CST-2CDT,J1/00,J365/00"" leaves ed=31 and em=12 as you would hope. In fact any start specifier at the end of a month (J31, J59,...J334) will fail later because it will result in sd=0 which is outside the range of 1..31. This code is identical in boost 1.52.0. The fix appears to be just to use ""strictly less than"" in both loops. ",Bugs,new,To Be Determined,date_time,Boost 1.50.0,Problem,,,