Модераторы: Alexeis
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Узнать дату определленого дня, недели по опредл. счёту 
V
    Опции темы
Rickert
  Дата 3.8.2006, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Вот сейчас 3 августа и четверг. А как мне узнать дату второго понедельника сентября? Есть стандартные методы?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Snowy
Дата 3.8.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 2
Всего: 484



Берёшь сентябрь. Получаешь день недели первого числа.
Второй понедельник из этого вычисляется лихко.
Код

var
  t: SYSTEMTIME;
  f: FILETIME;
  d: word;
begin
  GetSystemTime(t);
  t.wMonth := 9; t.wDay := 1; // вычисляем день недели 1-го сентября
  SystemTimeToFileTime(t, f);
  FileTimeToSystemTime(f, t);
  d := t.wDayOfWeek;
  if d < 2 then d := d + 7;
  d := 16 - d; // в d - число
end;

Язык ты не уточнял, поэтому на C++ переводить не буду.
PM MAIL   Вверх
Rickert
Дата 4.8.2006, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



А мне C++ нужен smile


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Rickert
Дата 4.8.2006, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



У меня в голове такой план крутился, но как "поставить" дату в CTime?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Snowy
Дата 4.8.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 2
Всего: 484



Зачем тебе CTime?
1. Получаешь текущую дату через GetSystemTime
2. Меняешь в ней день на нужный.
3. Конвертируешь её в другой формат, а потом обратно.
Я выбрал FileTime. SystemTimeToFileTime и потом обратно FileTimeToSystemTime.
При конвертации поле с днём недели выставляется в нужное.
Зная день недели 1-го числа, легко найти второй понедельник.
Если сам не справишься, я позже переведу на C++. Просто у меня нет под ругой С компилятора. Поэтому корректность кода не гарантирую.
PM MAIL   Вверх
Rickert
Дата 17.8.2006, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: нет
Всего: 52



Спасибо, разобрался!


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование мобильных устройств"
Alexeis

Раздел посвящен программированию мобильных устройств.

Все остальные вопросы по мобильным устройствам (КПК, смартфоны, телефоны, фотоаппараты и т.п),
не имеющие отношения к программированию, просьба размещать в разделе КПК, смартфоны, мобильники

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Платформы Windows Mobile и Windows Embedded | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.