Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Разность дат в виде даты

459
12 марта 2003 года
gacol
273 / / 12.02.2003
ПОМОГИТЕ

Одной даме нужна функция вычисляющая разницу между датами и выдающая ее в виде (лет) (месяцев) (дней). Главное меньше программирования. У меня самого получается слишком сложно.
267
12 марта 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by gacol
ПОМОГИТЕ

Одной даме нужна функция вычисляющая разницу между датами и выдающая ее в виде (лет) (месяцев) (дней). Главное меньше программирования. У меня самого получается слишком сложно.



Есть такая программа. Называется Microsoft Excel.
Как известно, дата-время в Excel - это обычное число, целая часть которого есть число дней прошедших с 00-янв-1900 (то бишь дата), а дробная -доля суток (то бишь время).
Берем две ячейки. В одной пишемем одну дату (можно с временем), в другой - другую. Вычитаем из большей меньшую (единственное неудобство - наоборот нельзя, придется брать abs() ). Форматируем ячейку с разницей как ГГ/ММ/ДД чч:мм (скорее всего Excel сам так от форматирует по образцу первых двух ячеек). Допустим, там получилось 04/02/15 08:23 Значит, вторая дата больше первой на 4 года 2-1=1 месяц (январь=1) 15 дней 8 часов 23 минуты (можно легко выполнить за даму это вычитание). Еще одна тонкость - в том, что такое месяц - 30 дней или 31 или 29 или сколько? В связи с этим разница между 15 января и 15 февраля составит 31 дней (а не 1 месяц). Если даму это устроит, то решение готово. Если не устроит, то что именно ей надо?

459
12 марта 2003 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by Cutty Sark


Есть такая программа. Называется Microsoft Excel.
Как известно, дата-время в Excel - это обычное число, целая часть которого есть число дней прошедших с 00-янв-1900 (то бишь дата), а дробная -доля суток (то бишь время).
Берем две ячейки. В одной пишемем одну дату (можно с временем), в другой - другую. Вычитаем из большей меньшую (единственное неудобство - наоборот нельзя, придется брать abs() ). Форматируем ячейку с разницей как ГГ/ММ/ДД чч:мм (скорее всего Excel сам так от форматирует по образцу первых двух ячеек). Допустим, там получилось 04/02/15 08:23 Значит, вторая дата больше первой на 4 года 2-1=1 месяц (январь=1) 15 дней 8 часов 23 минуты (можно легко выполнить за даму это вычитание). Еще одна тонкость - в том, что такое месяц - 30 дней или 31 или 29 или сколько? В связи с этим разница между 15 января и 15 февраля составит 31 дней (а не 1 месяц). Если даму это устроит, то решение готово. Если не устроит, то что именно ей надо?



Это не то.
Надо не число лет.мес.дней прошедшее с 00-янв-1900 и равное в днях разнице дат.
Надо число лет.мес.дней прошедшее с первой по вторую дату (учитывая и високосность и правильный порядок месяцев).
Я думал, что есть такая возможность в Excel, но судя по твоему, Cutty Sark, ответу наверное нет.

267
12 марта 2003 года
Cutty Sark
1.2K / / 17.10.2002
Ну ё-моё. Ещё утро, а ты уже так тормозишь... :D

Почитай внимательно, я тебе не предлагаю сообщать даме сколько прошло с 0-го января 1900 года.
Вот смотри, я родился 5 марта 1976 года в 13:50.
Ввожу в ячейку A1 05.03.1976 13:50
Мой брат родился 11 августа 1986 года в 17:30.
Ввожу в ячейку A2 11.08.1986 17:30
Ввожу в ячейку A3 формулу =A2-A1. Умный Excel сам отформатировал мне ячеку A3, и в ней получилось 07.06.1910 3:40. Это значит, что я старше своего брата на 10 лет (1910-1900=10), 5 месяцев (6-1=5), 7 дней (7-0=7), 3 часа 40 минут.
267
12 марта 2003 года
Cutty Sark
1.2K / / 17.10.2002
Может возникнуть вопрос, почему с 5-го по 11-е число прошло 7 дней, а не 6. Это как раз возникает из-за того, что в месяцах разное число дней. Если нужно, чтобы между 5 числом одного месяца и 5 числом другого месяца всегда было ровное число месяцев, делай так.
Для удобства Д1,М1,Г1 = день-месяц-год меньшей даты х1 (выделяются из полной даты функциями ДЕНЬ(), МЕСЯЦ() и ГОД() ), Д2,М2,Г2 - большей даты х2, ДР,МР,ГР - результата. Введем вспомогательную дату х3=Д1.М2-1.Г2 (собирается в дату функцией ДАТА(). Excel умный, если M2=1, получится декабрь предыдущего года).
Промежуточные числа:
ГР1=Г2-Г1
МР1=М2-М1
ДР1=Д2-Д1
Если (ДР1>=0) То (ДР=ДР1, МР2=МР1) иначе (ДР=х2-х3 (прям так, разница дат), МР2=МР1-1)
Если (МР2>=0) То (МР=МР2, ГР2=ГР1) иначе (МР=МР2+12, ГР2=ГР1-1)
ГР=ГР2

Я думаю, ты легко это организуешь в Excel (хотя могу прислать файлик :D ).
1.3K
12 марта 2003 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by gacol
ПОМОГИТЕ

Одной даме нужна функция вычисляющая разницу между датами и выдающая ее в виде (лет) (месяцев) (дней). Главное меньше программирования. У меня самого получается слишком сложно.



Одной функцией несколько ячеек, конечно, не заполнишь. Но никакого програмирования не нужно, одна голая математика.

Посмотри, вот так не слишком сложно?

Или, может быть нужно найти реальное количество лет и месяцев между двумя датами?
Если - да, то - сложнее.

1.3K
13 марта 2003 года
IKor
116 / / 04.12.2002
Цитата:
Originally posted by gacol
ПОМОГИТЕ

Одной даме нужна функция вычисляющая разницу между датами и выдающая ее в виде (лет) (месяцев) (дней). Главное меньше программирования. У меня самого получается слишком сложно.



Может быть твоей даме понравится вот такой сайт
http://www.re-date.com/index.php

459
13 марта 2003 года
gacol
273 / / 12.02.2003
Цитата:
Originally posted by IKor


Может быть твоей даме понравится вот такой сайт
http://www.re-date.com/index.php




Спасибо за советы, адреса ...
Я примерно разобрался с возможностями Excel по данной проблеме.
Так, что - END.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог