Вниз
Скачать: CL | DM;

Нужен элегантный алгоритм. Работа с датами.   Найти похожие ветки 

← →
BorisKB ©   (2003-05-16 12:26) [0]

Сколько дней из заданного месяца (дан месяц и год) попадает в интервал дат.
Алгоритм должен учитывать все возможные варианты.
0 дней. полный месяц. Х дней.
Ничего стоящего в голову не приходит. Только куча IF-ов. Не красиво так. Как бы их (if-ы) минимизировать..........


← →
Mystic ©   (2003-05-16 12:30) [1]

1. Найди пересечение двух интервалов (месяц и твой интервал)
2. Если интервалы не пересекаются, то 0 дней.
3. Вычти из конца полученного интервала его начало и добавь один.


← →
VMcL ©   (2003-05-16 12:36) [2]

Delphi help: date/time routines


← →
BorisKb ©   (2003-05-16 12:50) [3]

Даааааааа. А я надеялся...........
Ответы конечно.... Я не спрашиваю - как сделать. Я спрашиваю как элегантно сделать?


← →
Leshiy ©   (2003-05-16 12:56) [4]

Код давай.


← →
Mystic ©   (2003-05-16 12:56) [5]

Єлегантно это без операторов if ?


← →
Vit@ly ©   (2003-05-16 12:57) [6]

Каким образом задан интервал?


← →
Mystic ©   (2003-05-16 13:00) [7]

DateStart := Max();
DateFinish := Min();
if DateFinish < DateStart
then Result := 0
else Result := Round(DateFinish - DateStart)


← →
Diouzshev ©   (2003-05-16 13:02) [8]

2, ну 4 if это по твоему много ?

uses DateUtils;
...........
if BeginDateInterval < StartOfAMonth(Y, M) then
BeginDateInterval := StartOfAMonth(Y, M);
if EndDateInterval > EndOfAMonth(Y, M) then
EndDateInterval := EndOfAMonth(Y, M);
DC := DaysBetween(BeginDateInterval, EndDateInterval) + 1;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-94844
Leva
2003-05-20 02:45
2003.05.29
Как в Дельфи открыть Internet Explorer c нужной страничкой


1-94824
7Up
2003-05-19 14:42
2003.05.29
Хэндл у объекта


4-95173
BJValentine
2003-04-01 16:34
2003.05.29
Запуск другой программы из своей.


14-95068
Соловьев
2003-05-08 10:16
2003.05.29
Мастаки, поделитесь опытом защиты прав на пргу.


14-95077
Zlobniy Virus
2003-05-10 15:05
2003.05.29
по поводу сокетов




   Наверх