IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Класс календаря., ООП
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: Егор

Репутация: -  0  +


Условие. Календарь. Реализовать класс календаря с возможностью получения дня
недели для даты, числа дней в i месяце,начиная с текущего,определение
высокосного года! Как это реализовать в Delphi?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: Егор

Репутация: -  0  +


Подскажите в чем ошибка? Убрал все лишнее из пирмера. Пытаюсь откомпилировать в делфи,появляеться ошибка(


Код
unit kalendar;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;


type
  Tdate = class
   d : byte;      
   m : byte;      
   y : integer;  
  end;

  Tstyle = (grigorian, julian);

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;  

type
  TForm1 = class(TForm)
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation


{***************************************************************************}

  function numofday;
     var
          stcor : integer;
     begin

          if style = grigorian then
               begin
                    stcor := 2-dat.y div 100+dat.y div 400;
                    if ((dat.y mod 100 = 0) and (dat.y mod 400 <> 0)) and (dat.m <= 2) then stcor := stcor + 1;
               end
                               else
               begin
                    stcor := 0;
               end;

          inc(dat.m);

          if dat.m <= 3 then
               begin
                    dat.m := dat.m+12;
                    dec(dat.y);
               end;
          numofday := (36525*dat.y) div 100 + (306*dat.m) div 10 + stcor + dat.d;
     end;

{***************************************************************************}

  function dayofweek;
     var

          day                 : byte;
          buf                 : longint;
     begin
          buf := numofday(dat, style);
          buf := buf+4;
          day := buf mod 7;
       if day = 0 then day := 7;
          dayofweek := day;
     end;

{***************************************************************************}

function lenofmonth;
     var
          len                 : byte;
     begin
          case month of
               2 : begin
                        if year mod 4 = 0 then len := 29
                                          else len := 28;
                        if (style = grigorian) and (year mod 100 = 0) and (year mod 400 > 0) then len := 28;
                   end;
               4, 6, 9, 11 : len := 30
               else len := 31;
          end;
          lenofmonth := len;
     end;

{***************************************************************************}

function isleap;
     begin
          isleap := (((year mod 4 = 0) and (year mod 100 <> 0)) or (year mod 400 = 0));
     end;


end.


Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Egor Vladimirovich   Класс календаря.   15.10.2006 15:41
klem4   Посмотри здесь : FAQ: Задачи, связанные с календар…   15.10.2006 15:47
Egor Vladimirovich   Спс. Там уже смотрел. Нужно реализовать класс. Соз…   15.10.2006 23:20
volvo   Ну, так в чем проблема? Поменяй заголовки процедур…   15.10.2006 23:36
мисс_граффити   зачем менять? просто в кучу собрать...   15.10.2006 23:56
Egor Vladimirovich   Подскажите в чем ошибка? Убрал все лишнее из пирм…   17.10.2006 0:20
volvo   :blink: У меня в Delphi 6 все откомпилировалось н…   17.10.2006 1:42
Egor Vladimirovich   Ошибка при компеляции такая "Project1.exe ra…   17.10.2006 14:29
volvo   Ничего подобного... ЭТО - не ошибка компиляции, а …   17.10.2006 14:48
Atos   Стоп, Egor Vladimirovich, ты пытаешься откомпилиро…   17.10.2006 14:58
Egor Vladimirovich   Вроде разобрался) Спасибо! Еще один вопрос…   18.10.2006 22:26
Гость   Помогите написать свойства( property ) для функций…   21.10.2006 14:28
мисс_граффити   Свойства для функций - это как? Что они делают? Eg…   21.10.2006 15:59
Egor Vladimirovich   мисс_граффити Свойства для методов например: funct…   21.10.2006 19:14
мисс_граффити   так. то ли я в терминологии не понимаю, то ли не я…   21.10.2006 20:00
Egor Vladimirovich   Собственно во всем разобрался и все сделал,спасиб…   23.10.2006 22:26
Egor Vladimirovich   Как реализовать процедуру поиска числа дней между …   8.11.2006 13:51
мисс_граффити   решалось. см. FAQ   8.11.2006 18:05
Egor Vladimirovich   Уже посмотрел, нашел только процедуру сравнения 2 …   8.11.2006 22:23
мисс_граффити   Самая первая задача. То же самое, только наоборот:…   8.11.2006 23:09
Egor Vladimirovich   Самая первая задача. То же самое, только наоборот…   9.11.2006 1:13
klem4   И на какую же ошибку система тебе указывает ? У ме…   9.11.2006 1:35
мисс_граффити   DayInMonth[2]:=DayInMonth[2]+Byte((CurrYear mod 4…   9.11.2006 1:44
Egor Vladimirovich   DayInMonth[2]:=DayInMonth[2]+Byte((CurrYear mod …   9.11.2006 22:14
мисс_граффити   if ((CurrYear mod 4) = 0) then DayInMonth[2]:=DayI…   9.11.2006 22:22
Egor Vladimirovich   2 мисс графити откомпилировал,тока че то не разобр…   10.11.2006 2:45
Алена   :yes2: If ((CurrYear mod 4) = 0) and not (…   10.11.2006 3:19
Egor Vladimirovich   Помогите кто нибудь мне написать процедуру Вычисле…   10.11.2006 15:48
Malice   Помогите кто нибудь мне написать процедуру Вычисл…   10.11.2006 17:04
Гость   Тебе нужна функция, переводящая дату в количество…   10.11.2006 21:19


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 3.05.2024 15:43
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name