powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ох уж эти даты
7 сообщений из 7, страница 1 из 1
Ох уж эти даты
    #34930734
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не волшебник, я только учусь


Есть дата рождения dat1 вид (дд.мм.гг), есть сегодняшняя дата dat2 вид (дд.мм.гг.), как оптимально получить возраст вида ( 1 год 3 мес 5 дней ), если не затруднительно разрешите вопрос....
...
Рейтинг: 0 / 0
Ох уж эти даты
    #34930765
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поищи - обсуждения были. В общем случае задача решается не так и просто
...
Рейтинг: 0 / 0
Ох уж эти даты
    #34930795
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В обсуждениях которые нашел все слишком просто чтобы понять , а я к сожалению не профи,
хорошо сформулируем так , как получить возраст вида 1 год 3 мес, без учета дней
...
Рейтинг: 0 / 0
Ох уж эти даты
    #34930863
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если сильно примитивно
Количество дней
days=dat2-dat1
Лет
years=INT(days/365)
месяцев
month=(days-years*365)/30
...
Рейтинг: 0 / 0
Ох уж эти даты
    #34930922
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikita_2Я не волшебник, я только учусь


Есть дата рождения dat1 вид (дд.мм.гг), есть сегодняшняя дата dat2 вид (дд.мм.гг.), как оптимально получить возраст вида ( 1 год 3 мес 5 дней ), если не затруднительно разрешите вопрос....
Если dat1 вид (дд.мм.гг) и dat2 вид (дд.мм.гг.) в текстовом формате, естественно нужно преобразовать в формат даты CTOD().

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
LOCAL ldDateBirth,ldDateCurrent,lnYearCount,ldDateTempYear,ldDateTempMonth,lnMonthCount,lnDayCount

ldDateBirth={^ 1985 - 11 - 11 }
ldDateCurrent=DATE()

ldDateTempYear=DATE(YEAR(ldDateCurrent),MONTH(ldDateBirth),DAY(ldDateBirth))
IF ldDateTempYear>ldDateCurrent
  ldDateTempYear=DATE(YEAR(ldDateCurrent)- 1 ,MONTH(ldDateBirth),DAY(ldDateBirth))
ENDIF
lnYearCount=YEAR(ldDateTempYear)-YEAR(ldDateBirth)

lnMonthCount=MONTH(ldDateCurrent)-MONTH(ldDateBirth)

IF lnMonthCount< 0 
  lnMonthCount= 12 +lnMonthCount
ELSE
  IF lnMonthCount> 12 
    lnMonthCount=lnMonthCount- 12 
  ENDIF
ENDIF

ldDateTempMonth=GOMONTH(ldDateTempYear,lnMonthCount)
IF ldDateTempMonth>ldDateCurrent
  lnMonthCount=lnMonthCount- 1 
  ldDateTempMonth=GOMONTH(ldDateTempYear,lnMonthCount)
ENDIF

lnDayCount=ldDateCurrent-ldDateTempMonth

Мне никогда такая задача не была нужна. Написал со скуки. Поэтому лучше потестировать.
...
Рейтинг: 0 / 0
Ох уж эти даты
    #34930926
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
ELSE
  IF lnMonthCount> 12 
    lnMonthCount=lnMonthCount- 12 
  ENDIF
Очевидно, лишнее. :)
Такого быть не может, перестраховался. :)
...
Рейтинг: 0 / 0
Ох уж эти даты
    #34931009
Nikita_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем кто принял участие в проблемме особенно Vik (у)
Интересно что ж ты можешь сотворить когда не скучно?!!!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ох уж эти даты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]