2017-02-23 4 views
-6

Вам нужна функция C++, чтобы узнать дату первого дня недели с номера недели.Как узнать дату первого дня недели с номера недели в C++

вход: год и номер недели Вывод: дата [Это должно быть 1-й день, что номер недели]

например:

  • входы:

    • год - 2017, недельный номер - 8
      Выход: 20th Feb 2017
  • входы:

    • год - 2017, номер недели - 10
      Выход: `6 марта 2017
+2

Ваше желание вряд ли будет выполнено, если вы не покажете, что вы пробовали до сих пор. Отправьте свой код. – mhawke

+0

есть ли какая-либо стандартная функция, которая может дать мне дату с номера недели? в противном случае мне нужно будет принять сегодняшнюю дату и неделю и вернуться/вперед, чтобы получить дату, которую я хочу с номером недели. – user2991556

+0

Есть ключи от перехода по другому пути здесь: http://stackoverflow.com/questions/274861/how -do-i-calculate-the-week-number-given-a-date – doctorlove

ответ

0

Использование Howard Hinnant's free, open-source, header-only date library, он может выглядеть следующим образом:

#include "date.h" 
#include "iso_week.h" 
#include <iostream> 

int 
main() 
{ 
    using namespace iso_week::literals; 
    std::cout << date::year_month_day{2017_y/8_w/mon} << '\n'; 
    std::cout << date::year_month_day{2017_y/10_w/mon} << '\n'; 
} 

, который выводит:

2017-02-20 
2017-03-06 

Есть также добытчики за год, месяц и день на year_month_day типов, а также множество вариантов форматирования.

+0

Спасибо за ответ :) Но я не могу добавить эти файлы в VS10 - получение ошибки не может открыть date.h & iso_week.h – user2991556

+0

@ user2991556: Это сторонняя библиотека (я автор-автор), расположенный на GitHub. Вы должны щелкнуть по синей ссылке в первом предложении моего ответа выше. При этом VS10 слишком устарел, чтобы работать с этой библиотекой. В нем отсутствует '', на котором построена эта библиотека. Эта библиотека требует VS13 или более поздней версии. –

Смежные вопросы