Как сделать часы в паскале

Добавил пользователь Владимир З.
Обновлено: 10.09.2024

Процедуры, необходимые для работы с датой и временем включены в модуль DOS. Подключение модуля осуществляют командой Uses DOS. Модуль обеспечивает связь программы с MS DOS и содержит более 20 процедур и функций. Наиболее часто используются следующие из них:

1) GetTime(H,M,S,S100); – процедура; возвращает установленное в операционной системе текущее время в виде: H – часы (0..23), M – минуты (0..59), S – секунды (0..59), S100 – сотые доли секунды (0..99). Все переменные процедуры имеют тип Word.

2) GetDate (Y,M,D,DW); – процедура; возвращает установленную в операционной системе текущую дату в виде: Y – год (1980..2099), M – месяц (1..12), D – день (1..31), DW - день недели (0..6, где значению "0" соответствует воскресенье). Все данные выходные и имеют тип Word.

Пример. Модуль DOS позволяет запустить из Паскаль-программы другую программу по командной строке DOS, посмотреть атрибуты файла (время создания, имя, тип и т.д.), объем дисковой памяти (общей и свободной) и выполнять другие команды MS DOS.

Большинство программ, которые вы пишете, нуждаются в реализации некоторой формы функций даты, возвращающих текущую дату и время. Свидания настолько важны в повседневной жизни, что с ними легко работать, не задумываясь. Паскаль также предоставляет мощные инструменты для арифметики дат, которые упрощают манипулирование датами. Однако фактическое имя и работа этих функций различны для разных компиляторов.

Получение текущей даты и времени

Функция Pascal TimeToString дает вам текущее время в форме с разделителями (:). В следующем примере показано, как получить текущее время —

Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат —

Функция Date возвращает текущую дату в формате TDateTime . TDateTime — это двойное значение, которое требует некоторого декодирования и форматирования. Следующая программа демонстрирует, как использовать ее в вашей программе для отображения текущей даты:

Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат —

Функция Now возвращает текущую дату и время —

Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат —

Free Pascal предоставляет простую структуру меток времени с именем TTimeStamp , которая имеет следующий формат:

Различные функции даты и времени

Free Pascal предоставляет следующие функции даты и времени —

function DateTimeToFileDate (DateTime: TDateTime): LongInt;

Преобразует тип DateTime в дату файла.

Функция DateTimeToStr (DateTime: TDateTime) :;

Создает строковое представление DateTime

function DateTimeToStr (DateTime: TDateTime; const FormatSettings: TFormatSettings) :;

Создает строковое представление DateTime

процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime);

Создает строковое представление DateTime

процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime; const FormatSettings: TFormatSettings);

Создает строковое представление DateTime

процедура DateTimeToSystemTime (DateTime: TDateTime; выход SystemTime: TSystemTime);

Преобразует DateTime в системное время

function DateTimeToTimeStamp (DateTime: TDateTime): TTimeStamp; Преобразует DateTime в метку времени

Функция DateToStr (Date: TDateTime) :;

Создает строковое представление даты

function DateToStr (Date: TDateTime; const FormatSettings: TFormatSettings) :;

Создает строковое представление даты

Функция Date: TDateTime;

Получает текущую дату

function DayOfWeek (DateTime: TDateTime): Integer;

Получает день недели

процедура DecodeDate (Дата: TDateTime; год выхода: слово; месяц выхода: слово; день выхода: слово);

Декодирует DateTime в год, месяц и день

процедура DecodeTime (время: TDateTime; вне часа: слово; вне минуты: слово; вне секунды: слово; вне миллисекунды: слово);

Декодирует DateTime в часы, минуты и секунды

функция EncodeDate (год: слово; месяц: слово; день: слово): TDateTime;

Кодирует год, день и месяц в DateTime

функция EncodeTime (час: слово; минута: слово; секунда: слово; миллисекунда: слово): TDateTime;

Кодирует часы, минуты и секунды в DateTime

Функция FormatDateTime (const FormatStr:; DateTime: TDateTime) :;

Возвращает строковое представление DateTime

функция FormatDateTime (const FormatStr:; DateTime: TDateTime; const FormatSettings: TFormatSettings) :;

Возвращает строковое представление DateTime

функция IncMonth (const DateTime: TDateTime; NumberOfMonths: Integer = 1): TDateTime;

Добавляет 1 к месяцу

function IsLeapYear (Год: Слово): Boolean;

Определяет, является ли год високосным

function MSecsToTimeStamp (MSecs: Comp): TTimeStamp;

Преобразует количество миллисекунд в метку времени

функция сейчас: TDateTime;

Получает текущую дату и время

function StrToDateTime (const S :): TDateTime;

Преобразует строку в DateTime

function StrToDateTime (const s: ShortString; const FormatSettings: TFormatSettings): TDateTime;

Преобразует строку в DateTime

function StrToDateTime (const s: AnsiString; const FormatSettings: TFormatSettings): TDateTime;

Преобразует строку в DateTime

function StrToDate (const S: ShortString): TDateTime;

Преобразует строку в дату

function StrToDate (const S: Ansistring): TDateTime;

Преобразует строку в дату

function StrToDate (const S: ShortString; разделитель: Char): TDateTime;

Преобразует строку в дату

function StrToDate (const S: AnsiString; разделитель: Char): TDateTime;

Преобразует строку в дату

function StrToDate (const S: ShortString; const useformat:; разделитель: Char): TDateTime;

Преобразует строку в дату

function StrToDate (const S: AnsiString; const useformat:; separator: Char): TDateTime;

Преобразует строку в дату

Сегодня существует множество мощнейших средств разработки программного обеспечения. Все они направлены на увеличение производительности труда программиста. При помощи многих из них решить простые задачи, например,
написать программу-часы, можно всего за несколько минут.

Как написать программу часы

  • Как написать программу часы
  • Как сделать программу-секундомер на Паскале
  • Как на сайте сделать часы
  • - компилятор;
  • - пакеты разработчика;
  • - опционально: интегрированная среда разработки (IDE).

Сформируйте заготовку или проект приложения, которое будет реализовывать часы. В случае если используется IDE, запустите мастер создания проектов, выберите тип приложения, каталог хранения файлов и другие опции. Сгенерируйте проект.

При отсутствии IDE добавьте нужные файлы вручную. Используйте подходящий текстовый редактор. Создайте сценарии для используемой системы сборки (make, cmake, nmake, и т.д.) или файл проекта, если применяются средства вроде qmake.

Как написать программу часы

Разработайте интерфейс приложения. У такой простой программы как часы он может состоять всего из одного диалогового окна, в котором будет показано текущее время. Отображение текста в окне можно осуществлять непосредственно - при помощи доступных методов графического вывода. Однако гораздо удобнее использовать для этой цели походящие элементы управления. Если в IDE присутствует инструментарий для дизайна интерфейса, подготовьте в нем шаблон диалогового окна.

Как написать программу часы

Добавьте в приложение функционал для обеспечения срабатывания определенного фрагмента кода через заданные промежутки времени. Как правило, это делается при помощи запуска таймера, обработчиком событий которого является функция или метод класса. Напишите код, реализующий подобный обработчик, а также код запуска таймера при инициализации приложения и остановки при завершении его работы. Период срабатывания таймера установите в районе 100-300 миллисекунд.

Как написать программу часы

Реализуйте код обработчика событий таймера. Осуществляйте в нем получение текущего системного времени и его отображение в окне приложения. Получайте текущее время при помощи функций библиотеки C (localtime, localtime_r, gmtime, gmtime_r), платформ-специфических функций (таких как GetSystemTime в Windows) или соответствующих методов классов-оберток используемого фреймворка. Форматируйте полученное значение в строку и устанавливайте ее в качестве текста элемента управления, используемого для отображения времени или сохраняйте и выводите при обновлении окна с помощью соответствующих графических функций.

Как написать программу часы

Проверьте работу созданной программы, реализующей часы. Соберите проект. Запустите полученный исполняемый модуль.

Репутация: 6

тебе татушка нужна.

а так есть системный таймер :

по этому адресу ~ 18.2 раза в секунду увеличивается значение на 1 (точнее 1000/55 ~= 18.18. ). Можешь отслеживать изменения и каждые 18 увеличений прорисовывать новое положение стрелок. Не забудь каждые 1620 увеличений счетчика (90 секунд) ,корректировать значение часов на +2 сек.

Но это теория ,может тебя именно графическая реализация интересовала?

Репутация: 0

program clock;
uses crt,graph,dos;
var gb,gm,R:integer;x,y,x1,y1,u1,u,x2,y2,u2:real;
i:integer;
s:string[2];
h,m,c,d,c1:word;
begin

setfillstyle(1,7);
setcolor(7);
sector(250,150,35,215,30,30);
sector(390,150,325,360,30,30);
sector(390,150,0,143,30,30);
setlinestyle(0,0,3);
line(250,150,270,170);
line(390,150,370,170);
bar(305,120,335,125);
line(320,125,320,170);
setlinestyle(0,0,1);
sector(320,360,0,180,60,40);
setfillstyle(1,6);setcolor(6);
fillellipse(320,370,40,25);
setfillstyle(1,7);
fillellipse(320,240,R+20,R+20);
setbkcolor(0);

for i:=1 to 12 do
begin
u:=u+pi/6;
x:=(R+10)*cos(u)+317;y:=(R+10)*sin(u)+237;
str(i,s);
outtextxy(round(x),round(y),s);
end;

for i:=1 to 60 do
begin
u:=u+pi/30;
x:=(R+17)*cos(u)+320;y:=(R+17)*sin(u)+240;
putpixel(round(x),round(y),1);
end;

for i:=1 to 12 do
begin
u:=u+pi/6;
x:=(R+17)*cos(u)+320;y:=(R+17)*sin(u)+240;
setcolor(1);
setfillstyle(1,7);
fillellipse(round(x),round(y),2,2);
circle(round(x),round(y),2);
end;
repeat
gettime(h,m,c,d);
if c1<>c then
begin c1:=c;
setcolor(7);
line(320,240,round(x),round(y));
line(320,240,round(x1),round(y1));
setlinestyle(0,0,3);
line(320,240,round(x2),round(y2));

x2:=(R-23)*cos(u2)+320;y2:=(R-30)*sin(u2)+240;
setcolor(9);
line(320,240,round(x2),round(y2));
setlinestyle(0,0,1);

x1:=(R-15)*cos(u1)+320;y1:=(R-15)*sin(u1)+240;
setcolor(1);
line(320,240,round(x1),round(y1));

x:=(R)*cos(u)+320;y:=(R)*sin(u)+240;
setcolor(4);
line(320,240,round(x),round(y));

setcolor(4);
setfillstyle(1,4);
fillellipse(320,240,3,3);
u:=(c+45)*pi/30;
u1:=(m+45)*60*pi/1800;
u2:=(h*5+m/15+45)*3600*pi/108000;
end;
until keypressed;
closegraph;
end.

Читайте также: