Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
ВнизПодскажите алгоритм как вычислить количество дней между датами Найти похожие ветки
← →
pinokio (2004-12-16 15:47) [0]Добрый день..
Подскажите алгоритм как вычислить количество дней между двумя датами....
мне нужен именно алгоритм.
← →
Reindeer Moss Eater © (2004-12-16 15:51) [1]Result := x-y;
← →
pinokio (2004-12-16 15:55) [2]смешно :)
← →
Reindeer Moss Eater © (2004-12-16 15:56) [3]Дык я знал, что ты будешь смеятся
← →
pinokio (2004-12-16 15:57) [4]>Reindeer Moss Eater
result := "24.10.2004" -22.10.2004
и что получиться :)
← →
Term (2004-12-16 16:14) [5]result:=StrToDate(x)-StrToDate(y)
в чём траблы то
← →
Суслик © (2004-12-16 16:18) [6]а правда смешно :)))
← →
Плохиш © (2004-12-16 16:18) [7]
>pinokio (16.12.04 15:57) [4]
>>Reindeer Moss Eater
>result := "24.10.2004" -22.10.2004
Сам-то понял, что написал?
К тому же то, что стоит после минуса вообще в синтаксис не укладывается.
← →
pinokio (2004-12-16 17:46) [8]for Плохиш: Блин вот ты умный какой...
Я всего лишь попросил алгоритм как вычеслить период между двумя датами даты храняться в формате "dd.mm.yyyy h24:mi:ss"
Программа не на Delphi поэтому не стоит предлогать мне функции из Delphi я их и сам знаю...
← →
Суслик © (2004-12-16 17:48) [9]ни этого,
> двумя датами даты храняться в формате "dd.mm.yyyy h24:mi:ss"
ни этого
> Программа не на Delphi
в вопросе не было.
Зачем грубить?
← →
Reindeer Moss Eater © (2004-12-16 17:49) [10]>Reindeer Moss Eater
result := "24.10.2004" -22.10.2004
и что получиться :)
Буратино, у тебя в вопросе даты фигурируют, а не строки
← →
Reindeer Moss Eater © (2004-12-16 17:51) [11]Программа не на Delphi поэтому не стоит предлогать мне функции из Delphi я их и сам знаю...
Разница между датами в любом языке - это количество дней.
← →
Александр Иванов © (2004-12-16 17:51) [12]А на чем программа?
Во многих средах допустимо что-то вида [1].
← →
Reindeer Moss Eater © (2004-12-16 17:52) [13]И в слове "предлагать" нет букв "О"
← →
pinokio (2004-12-16 17:55) [14]Кто нибуть алгоритм может подсказать как к примеру работает функция
betweenday() или betweenmonth вроде так давно Delphi не использую и
под рукой его у меня тоже нет чтобы исходники функций посмотреть..
← →
Reindeer Moss Eater © (2004-12-16 17:58) [15]Разница дат в любом языке - это и есть количество дней.
Это и есть алгоритм.
Вычесть из большего меньшее.
← →
pinokio (2004-12-16 18:06) [16]for Reindeer Moss Eater lol :)
ты формат дат видел если тебе не трудно отними из одной другую и получи разницу в 2 дня..
еще раз как ты предлогаешь делаю обстрактно:
result:= "24.10.2004" - "22.10.2004"
явно требуеться преобразование или ты не согласен?
вот я и спрашиваю алгоритм (мне все надо сделать руками)....
← →
Verg © (2004-12-16 18:09) [17]
function SpanOfNowAndThen(const ANow, AThen: TDateTime): TDateTime;
begin
if ANow < AThen then
Result := AThen - ANow
else
Result := ANow - AThen;
end;
function DaySpan(const ANow, AThen: TDateTime): Double;
begin
Result := SpanOfNowAndThen(ANow, AThen);
end;
function DaysBetween(const ANow, AThen: TDateTime): Integer;
begin
Result := Trunc(DaySpan(ANow, AThen));
end;
← →
Verg © (2004-12-16 18:12) [18]
> вот я и спрашиваю алгоритм (мне все надо сделать руками)....
Алгоритм преобразования даты в текстовом представлении в TDateTime? Это что ли?
← →
pinokio (2004-12-16 18:15) [19]:))))
у меня нет формата TDateTime
его надо где-то взять :)
Блин ладно сам уже придумал как сделать....
← →
Папа Карло (2004-12-16 18:18) [20]Буратино.
Не тормози.
Не надо ничего нигде брать. Набери TDateTime. Нажми f1. Почитай хелп. Если тебя удовлетворит такой подход (где 1 = 1 день), то используй его.
← →
Алхимик © (2004-12-16 18:18) [21]
> у меня нет формата TDateTime
TDateTime = Double
← →
pinokio (2004-12-16 18:27) [22]да нет у меня Delphi
Doudle = 24.10.2004
Поясняю к примеру 24.10.2004 в Oracle явно не в таком формате храниться
:)))))))
← →
Verg © (2004-12-16 18:29) [23]Выцепляешь из строки день, месяц и год (парсингом! Как делается парсинг надо объяснять?) преобразуешь их в целые без знака и подставляешь в соответствующие параметры EncodeDate.
На всякий случай даю исходники EncodeDate:type
PDayTable = ^TDayTable;
TDayTable = array[1..12] of Word;
const
MonthDays: array [Boolean] of TDayTable =
((31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31));
DateDelta = 693594;
function IsLeapYear(Year: Word): Boolean;
begin
Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;
function TryEncodeDate(Year, Month, Day: Word; out Date: TDateTime): Boolean;
var
I: Integer;
DayTable: PDayTable;
begin
Result := False;
DayTable := @MonthDays[IsLeapYear(Year)];
if (Year >= 1) and (Year <= 9999) and (Month >= 1) and (Month <= 12) and
(Day >= 1) and (Day <= DayTable^[Month]) then
begin
for I := 1 to Month - 1 do Inc(Day, DayTable^[I]);
I := Year - 1;
Date := I * 365 + I div 4 - I div 100 + I div 400 + Day - DateDelta;
Result := True;
end;
end;
← →
Суслик © (2004-12-16 18:29) [24]
> :)))))))
шо ты ржешь.
если оракле, то и смотри в его хелпе
← →
Алхимик © (2004-12-16 18:32) [25]
> :)))))))
Ну что ты ржёшь?
Сена хошь?
← →
Алхимик © (2004-12-16 18:32) [26]
> [24] Суслик © (16.12.04 18:29)
Гы.
← →
Плохиш © (2004-12-16 18:43) [27]http://delphimaster.net/view/15-1102690000/
;-)
← →
jack128 © (2004-12-16 18:51) [28]ЯХДР. Правельный ник выбрал, парень.
← →
Reindeer Moss Eater © (2004-12-16 19:34) [29]Разница в днях:=TO_DATE(строка1) - TO_DATE("строка2");
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.035 c