Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вычисление дат. Подскажите.

Константин Лихачев Знаток (262), закрыт 16 лет назад
Нужна возможность задавать на сайте даты в виде "первый понедельник апреля" или "вторая среда мая".

Может кто сталкивался с подобной задачей. Интересует как формат хранения такой даты, так и алгоритм вычисления.

Буду благодарен за любые наводки.
Лучший ответ
Грозный Ламер Мудрец (11186) 16 лет назад
Если нужен только автоматический перевод 12.04.2007 во второй четверг апреля, то:
------------- cut ------------
ДАТА = "12.04.2007";
ЧИСЛО = день_месяца(ДАТА);
Д = день_недели(ДАТА);
М = месяц(ДАТА);
ДЕНЬ = ["понедельник","вторник","среда"...думаю понятно..."воскресенье"];
ИМЯ_МЕСЯЦА = ["января","февраля","марта"...тоже понятно..."декабря"];
МУЖСКОЙ = ["первый","второй","третий","четвёртый","пятый"];
ЖЕНСКИЙ = ["первая","вторая","третья","четвёртая","пятая"];
СРЕДНИЙ = ["первое","второе","третье","четвёртое","пятое"];
РОД = СРЕДНИЙ;
если ((Д = 1) или (Д = 2) или (Д = 4)) тогда {
РОД = МУЖСКОЙ;
}
если ((Д = 3) или (Д = 5) или (Д = 6)) тогда {
РОД = ЖЕНСКИЙ;
}
ИНДЕКС = 1;
пока ((ЧИСЛО - (ИНДЕКС * 7)) > 0) {
ИНДЕКС = ИНДЕКС + 1;
}
вывести_на_экран(РОД[ИНДЕКС],"<пробел>",ДЕНЬ[Д],"<пробел>",ИМЯ_МЕСЯЦА[М]);
------------- cut ------------
Для простоты представления все отсчёты в алгоритме велись от 1, а не от 0.
Остальные ответы
Сергей Знаток (479) 16 лет назад
в php можно хранить даты в формате timestamp...
Форматировать потом функцией date.

string date ( string format [, int timestamp] )

Возвращает время, отформатированное в соответствии с аргументом format, используя метку времени, заданную аргументом timestamp или текущее системное время, если timestamp не задан. Другими словами, timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time().

и небольшой алгоритм для перевода числительных из цифр в слова...)))
Похожие вопросы