Boost.Locale не работает!
От: AndreyY Украина  
Дата: 31.03.11 11:35
Оценка:
День добрый!
Понадобилось мне в проекте конвертировать даты из арабского летосчисления в григорианский (в наше то есть).
Нашел библиотеку Boost.Locale, посмотрел примеры использования и понял, это то что мне надо!
Скачал последнюю версию буста и этой либы.
Скачал ICU и собрал у себя на машине из исходников.
Скомпилировал Boost.Locale.
Все прошло замечательно, никто не ругался.
Написал тестовый пример:

using namespace boost::locale;
using namespace boost::locale::period;

generator gen;
// Create locales with Hebrew and Gregorian (default) calendars.
std::locale l_hebrew=gen("en_US@calendar=hebrew");
std::locale l_gregorian=gen("en_US");
    
// Create a Gregorian date from fields
date_time greg(2010*year + february + 5*day,l_gregorian);
// Assign a time point taken from the Gregorian date to date_time with
// the Hebrew calendar
date_time heb(greg.time(),l_hebrew);
// Now we can query the year.
std::cout << "Hebrew year is " << heb/ year << std::endl;

date_time now(time(0),l_hebrew);
std::cout << "Year:" << now / period::year <<" Full Date:"<< as::date << now;


Вернее как написал, стянул из документации.
Вывод я ожидал примерно такой:

Hebrew year is 5771
Year:5771 Full Date: 5771 Veadar 25


вместо этого получил

Hebrew year is 2010
Year:2010 Full Date:1.30157e+009


Что навело меня на мысль, что чтото тут не так.
Кто работал, сталкивался с этой либой, подскажите в чем проблема!?!
Заранее большое спасибо!
С наилучшими пожеланиями!
Andrey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.