Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#61: 2008-03-06 19:12:22 ЛС | профиль | цитата
Выкладываю с иконкой
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1differ.rar [1.2KB] [280]
Ответов: 8926
Рейтинг: 823
#62: 2008-03-06 19:45:04 ЛС | профиль | цитата
Tad, спасибо
andrestudio, с помощью DateDiff не ответить на "А сколько времени прошло со дня моего рождения?" в формате YY лет MM месяцев DD дней hh часов mm минут, только или, остальное считать придётся.
карма: 19

0
Ответов: 5227
Рейтинг: 587
#63: 2008-03-06 20:19:25 ЛС | профиль | цитата
Леонид - да это я так в тему ещё версию подкинул, а вычисление возраста по дате рождения дак уже есть компонент автора - v258 и называлется он AgeCalculator, когда то делал напоминайку чтоб дальних родствеников поздровлять, жалко погибло это хозяйство вместе с винтом
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 1891
Рейтинг: 110
#64: 2008-03-06 22:55:33 ЛС | профиль | цитата
писал(а):
andrestudio, с помощью DateDiff не ответить на "А сколько времени прошло со дня моего рождения?" в формате YY лет MM месяцев DD дней hh часов mm минут, только или, остальное считать придётся.


А чё там считать-то:

code_2153.txt
карма: 0
%time%
0
файлы: 1code_2153.txt [1.4KB] [299]
Ответов: 8926
Рейтинг: 823
#65: 2008-03-07 00:07:59 ЛС | профиль | цитата
Alexbootch, результаты познаются в сравнении!
карма: 19

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#66: 2008-03-07 01:19:02 ЛС | профиль | цитата
Ну, ну. А я посмотрю и подожду, покак вы все придете к консенсусу (в чем я немного сомневаюсь).
карма: 22

0
Ответов: 1891
Рейтинг: 110
#67: 2008-03-07 02:48:29 ЛС | профиль | цитата
Леонид, писал(а):
Alexbootch, результаты познаются в сравнении!


Блин, не учел вот это:
MSDN писал(а):
Как вы уже наверняка знаете, для вычисления интервала между двумя датами можно использовать встроенную в VB функцию DateDiff. Но работать с этой функцией нужно очень внимательно, с учетом входящих в нее ограничений.

Отгадайте такую загадку. Заданы две даты в виде переменных DateStart и DateFinish. Чтобы определить временной интервал между ними, мы написали такую процедуру:

Листинг 1.
Print "Интервал в годах = "; DateDiff("yyyy", DateStart, DateFinish)
Print "Интервал в месяцах = "; DateDiff("m", DateStart, DateFinish)
Print "Интервал в днях = "; DateDiff("d", DateStart, DateFinish)
Print "Интервал в часах = "; DateDiff("h", DateStart, DateFinish)
Print "Интервал в минутах = "; DateDiff("n", DateStart, DateFinish)
Print "Интервал в секундах= "; DateDiff("s", DateStart, DateFinish)

И получили такой парадоксальный результат:

Листинг 2.
Интервал в годах = 1
Интервал в месяцах = 1
Интервал в днях = 1
Интервал в часах = 1
Интервал в минутах = 1
Интервал в секундах = 1

Почему так произошло и о каких датах шла речь? Дело в том, что функция DateDiff определяет временной интервал элементарно — в соответствии с заданным первым параметром просто отбрасывает значения даты «после этой точки». То есть если вы задали «день», то отбрасываются часы (0 часов), если месяц — дни (первое число месяца). В соответствии с этим алгоритмом получается, что между 31 мая 2000-го и 1 июня 2000-го в единицах «месяц» разница — один месяц (что в определенном смысле совершенно верно).

В нашем же примере исходные значения даты были равны

Листинг 3.
DateS = "31.12.2000 23:59:59"
DateF = "01.01.2001"


Проверил пример Леонида на базе SQLite:
SELECT strftime('%d.%m.%Y %H:%M:%S', '2008-03-07 00:52:10', '-62 year','-11 month','-26 day','-19 hours','-52 Minute','-10 second'); --> 11.03.1945 05:00:00

карма: 0
%time%
0
Ответов: 8926
Рейтинг: 823
#68: 2008-03-07 10:01:24 ЛС | профиль | цитата
Alexbootch, считать всё таки придётся ; а где MSDN на русском?
nesco, китайский хитрый царь обезьян тоже сидя на пригорочке наблюдал, как в долине дерутся тигры.
карма: 19

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#69: 2008-03-07 10:08:01 ЛС | профиль | цитата
Леонид писал(а):
nesco, китайский хитрый царь обезьян тоже сидя на пригорочке наблюдал, как в долине дерутся тигры


карма: 22

0
Ответов: 16884
Рейтинг: 1239
#70: 2008-03-07 21:24:48 ЛС | профиль | цитата
Специально для тигров ! (кусок мяса)
------------ Дoбавленo:

Леонид, MSDN на русском http://www.aspnetmania.com/Forums/ForumMessage/200802.html
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1ds.rar [3.2KB] [259]
Ответов: 8926
Рейтинг: 823
#71: 2008-03-07 22:06:18 ЛС | профиль | цитата
Tad, "файл удалён"
А на MS-ом сайте эти странички уж очень неудобно скачивать, да и долго.
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#72: 2008-03-07 22:40:11 ЛС | профиль | цитата
Леонид писал(а):
"файл удалён"
ЖАЛЬ, а выложеный мной ds.rar не смотрели ?
------------ Дoбавленo:

Вот это Леонид означает Леонид. Знаменитая Опера.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8926
Рейтинг: 823
#73: 2008-03-08 01:33:31 ЛС | профиль | цитата
Tad, смотрел, а как же
2008 лет 3 месяца -444 дня
309 лет 8 месяцев -35 дней
4 года -1 месяц 29 дней

карма: 19

0
Ответов: 16884
Рейтинг: 1239
#74: 2008-03-08 12:13:00 ЛС | профиль | цитата
Ну да если родился в 01.01.0001 то давно уже -444 дня
------------ Дoбавленo:

Это фокусы конвертора StrFmtToDateReal
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
74
Сообщение
...
Прикрепленные файлы
(файлы не залиты)