|
|
|
даты
|
|||
|---|---|---|---|
|
#18+
есть две даты Дата1 и Дата2, как проверить что разница между ними 14 лет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 17:27 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
Посмотерть разницу между ними. Или есть опасения в невозможности из даты вычесть дату? Нетрудно и проверить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 17:44 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
Посмотрите поиск по данному форуму - приводились довольно красивые решения этой непростой задачи (в комплексе - количество лет, месяцев, дней)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 17:48 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
Например так: Код: plaintext Вопрос не совсем корректный. Что конкретно будем считать разницей в 14 лет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 17:54 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
етсь дата рождения, надо выбрать тех, кому не больше 14 лет на дату запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 18:54 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
sele * from table where (date()-date_r)>=365*14 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 19:09 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
Dagsele * from table where (date()-date_r)>=365*14 только 365.25, т.к. високосные года еще бывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 19:15 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
Что считать возрастом в 14 лет? Это не глупый вопрос, а самый что ни на есть конкретный. FoxPro может точно рассчитать разницу в днях между датами. Но ответить на вопрос о разнице в годах и месяцах - не может в принципе. По той простой причине, что термины "месяц" и "год" - это не абсолютные, а относительные величины. Каждый понимает под этим что-то свое. Вот какой смысл Вы вкладываете в эти понятия, такой ответ и получаете. Ну, например, если человек родился 29 февраля в високосный год. День рождения в не високосный год - это какое число будет? 28 февраля или 1 марта? А года как складывать будем? Возьмем сразу конечну дату или по 365 дней откладывать от дня рождения? "Вытрясите" из постановщика задачи что считать 1 годом в днях. И именно в днях. После этого можно что-то советовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 19:16 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
Еще раз в поиск - решение приводилось... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 19:18 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
Есть в фоксе прекрасная функция GOMONTH, которая позволяет "скакать" по месяцам (что делает вопрос о "високосности" не актуальным), которая и поможет в данном случае: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 22:52 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
ВладимирМЧто считать возрастом в 14 лет? Это не глупый вопрос, а самый что ни на есть конкретный. FoxPro может точно рассчитать разницу в днях между датами. Но ответить на вопрос о разнице в годах и месяцах - не может в принципе. По той простой причине, что термины "месяц" и "год" - это не абсолютные, а относительные величины. Каждый понимает под этим что-то свое. Вот какой смысл Вы вкладываете в эти понятия, такой ответ и получаете. Ну, например, если человек родился 29 февраля в високосный год. День рождения в не високосный год - это какое число будет? 28 февраля или 1 марта? А года как складывать будем? Возьмем сразу конечну дату или по 365 дней откладывать от дня рождения? "Вытрясите" из постановщика задачи что считать 1 годом в днях. И именно в днях. После этого можно что-то советовать. Здесь как раз ничего не надо "вытрясывать", поскольку переходить ко дням в году вообще нет никакой нужды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 23:02 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков ВладимирМ... Ну, например, если человек родился 29 февраля в високосный год. День рождения в не високосный год - это какое число будет? 28 февраля или 1 марта? ... Здесь как раз ничего не надо "вытрясывать", поскольку переходить ко дням в году вообще нет никакой нужды. 29 февраля тут немного нагадит. Логичней считать что в невисокосные года день рождения 1 марта, т.е. после 28-го. Так для родившегося 28.02.92: gomonth(date(1992,2,29), 14*12) = 28.02.2006 и для 29.02.92 gomonth(date(1992,2,28), 14*12) = 28.02.2006 Хотя первому 28.02.2006 уже 14 а второму еще 13. Поэтому надо прописать однозначный алгоритм расчета в ТЗ, чтоб потом не доказывать свою логику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 08:25 |
|
||
|
даты
|
|||
|---|---|---|---|
|
#18+
Sergey ChЕще раз в поиск - решение приводилось... OK. Вот варианты решений (использовал поиск по данному форуму): вариант 1 от ВладимираМ вариант2 от -=AlexiS=- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 09:29 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34926317&tid=1588566]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
132ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 432ms |

| 0 / 0 |
