4: Label4.Caption:='Среда';
5: Label4.Caption:='Четверг';
6: Label4.Caption:='Пятница';
7: Label4.Caption:='Суббота';
end
Week:=(HowManyDays(year,month,day) div
Label3.Caption:='Неделя No. '+IntToStr(Week);
end
end
Количество дней между двумя датами I
Delphi 1
ПЕРЕМЕННЫЕ:
Year1, Month1, Day1,
Year2, Month2, Day2,
YearResult, MonthResult, DayResult: Word;
TDay1, TDay2, DateDiff: TDateTime;
КОД:
TDay1 := EncodeDate(Year1, Month1, Day1);
TDay2 := EncodeDate(Year2, Month2, Day2);
DateDiff := TDay2 – TDay1; {предположим, что TDay2 позднее, чем TDay1}
DecodeDate(DateDiff, YearResult, MonthResult, DayResult);
DateDiff имеет тип LongInt (хотя и является объектом TDateTime), и содержит количество дней между датами.
Количество дней между двумя датами II
Delphi 1
Для DateDiff:
Вы смотрели на функцию DecodeDate? Это не точно именно то, что вам нужно, но на ее основе можно сделать вашу функцию именно с нужной вам функциональностью.
Для величины Present:
function
n : integer; { количество транзакций в массиве }
rate : double; { оценочный процент за истекший период }
atbegin : boolean) : double; { true, если транзакция была в начале периода,false если в конце }
var
i: integer;
factor: double;
begin
factor := (1 + rate / 100.0);
result := 0;
for
if
end
Конвертирование даты
Delphi 1
TheDateField.AsString := TheDateString;
TheDateString := TheDateField.AsString;
это делает преобразование подобно DateToStr и StrToDate. Аналогично:
TheDateField.AsDateTime := StrToDate(TheDateString);
TheDateString := DateToStr(TheDateField.AsDateTime);
Число текущей недели
Delphi 1
Здесь включены 2 вспомогательные функции, необходимые для работы вашей функции. Одна проверяет високосный год, другая возвращает число дней месяца (с проверкой високосного года), третья, ту, что вы хотели, возвращает текущую неделю года.
{***************************************************************************}
function
begin
Result := (nYear mod
end
{***************************************************************************}
function
const
DaysPerMonth: array
begin
Result := DaysPerMonth[nMonth];
if
end
{***************************************************************************}
function
var
X, nDayCount: Integer;nMonth, nDay, nYear: Word;
begin
nDayCount := 0;
deCodeDate(dDate, nYear, nMonth, nDay);
For