Я скорректировал первый день недели в области и локальных настройках на панели управления (Windows 7), и теперь я пишу функцию C++, которая должна вернуть первый день недели, который я скорректировал. Любая Windows API или стандартная функция C++, которую я могу использовать?Как начать день недели?
ответ
Я пытаюсь использовать GetLocaleInfoEx Windows API и он работал хорошо :)
int GetSystemStartDayOfWeek()
{
int ret;
DWORD StartDayOfWeek;
ret = GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT,
LOCALE_IFIRSTDAYOFWEEK | LOCALE_RETURN_NUMBER,
(LPTSTR)&StartDayOfWeek,
sizeof(StartDayOfWeek)/sizeof(TCHAR));
return StartDayOfWeek;
}
(К сожалению, что я написал было совершенно неправильно, я обновил пост.).
правильной функции использовать это EnumCalendarInfoExEx:
#include <Windows.h>
#include <strsafe.h>
#include <iostream>
using namespace std;
BOOL CALLBACK EnumCalendarInfoProcExEx(LPWSTR lpszInfo, CALID calendar, LPWSTR lpReserved, LPARAM lParam)
{
StringCchCopy(reinterpret_cast<LPWSTR>(lParam), 64, lpszInfo);
return FALSE;
}
int main()
{
WCHAR szDay[64];
BOOL bResult = ::EnumCalendarInfoExEx(
&EnumCalendarInfoProcExEx,
LOCALE_NAME_USER_DEFAULT,
ENUM_ALL_CALENDARS,
nullptr,
CAL_SDAYNAME1,
reinterpret_cast<LPARAM>(szDay)
);
if (!bResult)
{
wcout << L"Error" << endl;
return 0;
}
wcout << szDay << endl;
return 0;
}
Пара что необходимо учитывать:
- Несмотря на то, что первый день недели настроен как воскресенье на панели управления на моем ПК, это возвращает понедельник ...
- По-видимому, может быть несколько календарей для локали пользователя. Вышеприведенный код получает только первый день для первого календаря.
Я пытаюсь внести изменения в код тура, используя GetLocaleInfoEx, который возвращает CALID «Caleder ID» и передает его как замену параметру CAL_SDAYNAME1 в основной функции, но в результате возникают проблемы с буксировкой: 1- Всегда начало день, возвращенный в предыдущий день, например, если первый день - воскресенье, результат - суббота. 2- Результат возвращается как строка, как я могу получить его как целое. спасибо. –
- 1. PHP день недели числового день недели текст
- 2. Начать неделю в воскресенье как первый день недели
- 3. Как получить день недели?
- 4. Как найти день недели?
- 5. Определить день недели данной недели
- 6. Jquery начало DatePicker день недели
- 7. день недели в Sql
- 8. Рассчитать каждый день недели
- 9. ASP дисплей день недели
- 10. SimpleDateFormat День недели
- 11. Пакетный день недели?
- 12. C# Получить день недели
- 13. Momentjs первый день недели
- 14. Rails - Определить день недели
- 15. Дата, использующая день недели
- 16. Найдите день недели определенной даты, когда указан первый день недели
- 17. Oracle - получить день недели
- 18. Найти день недели
- 19. Лучший день недели
- 20. Начать рабочий день каждый день
- 21. Исключите День недели
- 22. день недели - Javascript
- 23. день недели в Java
- 24. NSCalendar первый день недели
- 25. Oracle день недели выпуск
- 26. Интернационализованный выходной день недели
- 27. Первый день недели
- 28. День недели Android
- 29. Получить день недели
- 30. Расчетный день недели XSL
«в первый день недели, который выбран»: не может понять, что фрагмент. Приведите пример. –
Кажется, это вопрос, который Google с радостью даст вам ответ. – RedX
Возможный дубликат [Определите, какой день недели начинается с] (http://stackoverflow.com/questions/11351196/determine-what-day-of-week-the-week-starts-with) – Puck