Условие. Календарь. Реализовать класс календаря с возможностью получения дня
недели для даты, числа дней в i месяце,начиная с текущего,определение
высокосного года! Как это реализовать в Delphi?
Посмотри здесь : http://forum.pascal.net.ru/index.php?showtopic=6681
Спс. Там уже смотрел. Нужно реализовать класс. Создать свой модуль)
Ну, так в чем проблема? Поменяй заголовки процедур функций на методы, и сделай класс...
зачем менять? просто в кучу собрать...
Подскажите в чем ошибка? Убрал все лишнее из пирмера. Пытаюсь откомпилировать в делфи,появляеться ошибка(
Ошибка при компеляции такая "Project1.exe raised exception class EresNotFound with message 'Resource Tform1 not found".Prossec Stoped.Use step or run cont...."
Ничего подобного... ЭТО - не ошибка компиляции, а ошибка времени выполнения. Ты запустил свою программу, и она выдала тебе это исключение...
Ничего не могу сказать, ибо не знаю, где именно у тебя возникает исключение. Может, в твоем коде? Ни одного слова связанного с модулем Kalendar я не нашел...
Стоп, Egor Vladimirovich, ты пытаешься откомпилировать один модуль, без проекта? Тогда понятно, почему ошибка - форма-то не создана.
Вроде разобрался) Спасибо! Еще один вопрос! Почему при работе выдает ошибку в это куске программы :
~~~~~~~~~~~~~~~~~~~~~
dat.d:=strtoint(edit5.text);
dat.m:=strtoint(edit6.text);
dat.y:=strtoint(edit7.text);
~~~~~~~~~~~~~~~~~~~~~
Но прекрасно работает если присваивать значания самому:
Например:
~~~~~~~~~~~~~~~~~~~~~
dat.d:=18; dat.m:=10; dat.y:=2006;
~~~~~~~~~~~~~~~~~~~~~
Описание Tdate:
~~~~~~~~~~~~~~~~~~~~~
type
Tdate = class
d : byte;
m : byte;
y : integer;
end;
~~~~~~~~~~~~~~~~~~~~~
Помогите написать свойства( property ) для функций:
function numofday(dat : tdate; style : tstyle) : longint;
function dayofweek(dat : tdate; style : tstyle) : byte;
function lenofmonth(month : byte; year : word; style : tstyle) : byte;
function isleap(year : integer):boolean;
Свойства для функций - это как?
Что они делают?
Egor Vladimirovich, КАКУЮ ошибку?
Во время РАБОТЫ или при компиляции?
мисс_граффити Свойства для методов например:
function numofday(dat : tdate; style : tstyle) : longint;
а свойство будет выглядеть так
property d:tdate; read d write d;( или как то так,особо разбираюсь)
С предъидущей ошибкой я разобрался... спс
так. то ли я в терминологии не понимаю, то ли не я.....
свойства - грубо говоря, это механизмы доступа к полям. так?
свойства отличаются от полей тем, что связаны с некоторыми действиями. Как минимум - просто записью и считыванием из поля. При желании - проверкой корректности ввода и дополнительными фишками (ну например: для класса "фигура" свойство "цвет" может обеспечивать перерисовку на экране).
что может ДЕЛАТЬ (не как выглядеть, а что делать? зачем оно нужно??) свойство для функции (или метода, не суть важно).
Собственно во всем разобрался и все сделал,спасибо за помощь!!! Кто хочет может скачать и посмотреть exe файл!!! Пишите свои комментарии!!!
Прикрепленные файлы
Project.rar ( 168.1 килобайт )
Кол-во скачиваний: 284
class.rar ( 192.62 килобайт )
Кол-во скачиваний: 235
Как реализовать процедуру поиска числа дней между 2 датами? дата в формате д.м.г! Помогите!
решалось.
см. FAQ
Уже посмотрел, нашел только процедуру сравнения 2 дат(одна больше другой и т.д.) А то что мне нужно найти к сожалению не удалось.
http://forum.pascal.net.ru/index.php?showtopic=6681.
То же самое, только наоборот: по времени и дате вычисляется другая дата.
И на какую же ошибку система тебе указывает ? У меня откомпилировалось нормально.
DayInMonth[2]:=DayInMonth[2]+Byte((CurrYear mod 4) = 0)
DayInMonth[2]:=DayInMonth[2]+Byte((CurrYear mod 4) = 0)
if ((CurrYear mod 4) = 0) then
DayInMonth[2]:=DayInMonth[2]+1
2 мисс графити
откомпилировал,тока че то не разобрался как наоборот сделать( Я помоему дыбил)
If ((CurrYear mod 4) = 0) and
not (((CurrYear mod 100) = 0) and ((CurrYear mod 400) <> 0)) then Inc(DayInMonth[2]);
Помогите кто нибудь мне написать процедуру Вычисления количества дней,между 2 датами!!!!!!!!!
function days (y,m,d:integer):longint;
begin
if m<3 then begin dec (y); inc (m,12); end;
days:=round(int (y*365.25)+int ((m+1)*30.601)+d-int(y/100)+int (y/400));
end;
function days (y,m,d:integer):longint;
begin
if m<3 then begin dec (y); inc (m,12); end;
days:=round(int (y*365.25)+int ((m+1)*30.601)+d-int(y/100)+int (y/400));
end;