| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Алгоритм хранения даты |
| Автор: Gold Dragon 16.10.2004, 21:14 |
| Хочу создать что-то типа спецификации определённого дня,Не нашёл ничего подходящего. Поясню. Должно получиться полное описание определённого дня. Это может быть праздник, годовщина, событие и т.п. Вот что уже получилось (в скобках размер) [1]- категория (1 - постоянный, 2 - переходящий) [2]- день [2]- месяц [4]- год [2]- вид (1 - праздник, 2 - годовщина рождение, 3 - памятный день, 4 - годовщина смерти и так далее) [2]- продолжительность [3]- страна (код страны, где это началось) - название - описание Если событие переходящее, например, какой-то праздник отмечается во второй четверг сентября c 1750 года, то "день" делится на две части и запись будет примерно такая (224091750...) У кого какие соображения по этому поводу? Что ещё нужно предусмотреть может кто уже это делал? |
| Автор: dm9 18.10.2004, 14:36 |
| Не совсем разобрался, что значит 224091750, но, кажется, ты не предусматриваешь периодичность. "Каждый второй вторник", "Третее воскресенье каждого месяца". Последнее, кстати, вполне рельно встречается. Не далее как вчера был на сборище, проходящем каждое третее воскресенье месяца. Хотя, если у тебя спецификация дня... хз, но если ты пишешь что-то типа универсального календаря, может пригодиться. |
| Автор: Akina 18.10.2004, 16:26 |
| Первый понедельник после первого вторника... в рамках приведенной схемы это не программится... Имхо категория должна быть не такая простая, а предусматривать все возможные типы преходящих праздников. |
| Автор: maxim1000 18.10.2004, 16:32 |
| можно попробовать сделать там текстовое поле, а в нем алгоритм получения следующей даты, записанный в некотором формате |
| Автор: dm9 18.10.2004, 16:47 |
| В общем, придётся разрабатывать язык для описания дат И для не имеющих ничего общего с программированием - возможность заполнения поля какими-то наиболее распространёнными способами простым тыканьем мышки |
| Автор: maxim1000 18.10.2004, 16:54 |
| Visual Date ++ где-то я слышал, что есть стандартный компонент Microsoft для обработки скриптов, точнее не скажу... |
| Автор: dm9 18.10.2004, 17:06 | ||
А что он делает? Там, наверное, стандартный язык. Хотя, добавить подпрограммок - и можно его использовать Я также знаю интерпретатор для Delphi Кстати, а на чём реализация задумывается? [offtop] Ну вот, а Red Dragon хотел написать простенький календарик на сто строк [/offtop] |
| Автор: Gold Dragon 18.10.2004, 19:22 | ||||||||
Спасибо за комментарии
2 - событие переходящее 2 - второй 4 - четверг 09 - сентября 1750 - событие введено в 1750 году
Это мне и не надо. Я делаю не органайзер, а что-то типа календаря и по этому - одно и тоже событие может быть только один раз в год
Какие ещё соображения, пока писать не начал |
| Автор: dm9 18.10.2004, 19:42 | ||||
Не правда 1-ПН 2-ВТ 3-СР 4-ЧТ 5-ПТ 6-СБ 7-ВС 8-ПН <-- второй понедельник 9-ВТ 1-ВТ 2-СР 3-ЧТ 4-ПТ 5-СБ 6-ВС 7-ПН <-- первый понедельник 8-ВТ
Ну так зачем тогда вообще события вводить, если про третее воскресенье месяца мне не напомнят? Добавлено @ 19:45 А хотя, если это просто общий календарь... То есть если это будет использоваться, например, так: вывести на сайте, какие сегодня праздники. То тогда все события описываются твоим способом из первого сообщения. |
| Автор: Gold Dragon 19.10.2004, 10:20 | ||||||
|
| Автор: Akina 19.10.2004, 13:25 |
| Red Dragon Я воспроизвел тебе алгоритм даты выборов президента США. Без указания месяца есссно. Имхо вводим типы дат. Для постоянных все просто и ясно - сккажем тип "ноль" и конкретная дата, а вот для преходящих - тип и дата от которой обрабатывать... Скажем приведенный мной пример трансформируется в следующее - первый понедельник после 2 числа месяца включительно. И хранится тип такого преходящего праздника (какой-нить 125-й) и базовая дата для данного типа (2 число какого-то месяца)... В рамках такого подхода описываются почти все существующие преходящие даты, за исключением связанных с лунным календарем (Пасха там, Новый год по Хиджре и пр.) - для них тоже есть базовая дата (после коей искать первое новолуние скажем), но расчет куда как не проще... |
| Автор: Gold Dragon 19.10.2004, 13:34 | ||||
|
| Автор: Akina 19.10.2004, 13:56 | ||
Red Dragon
|
| Автор: Mad 19.10.2004, 14:07 | ||
Red DragonСделай на классах:
Таким образом описываеш все возможные переобичности. |