Заголовочный файл time.h определяет функции для работы с датой и временем. В частности, функция time возвращает текущие дату и время в виде объекта типа time_t и имеет следующий прототип:
time_t time(time_t *arg);
В качестве параметра передается указатель на объект типа time_t , в который помещается текущие дата/время. То есть мы можем получить дату/время двумя способами:
-
Как результат функции time() :
time_t mytime = time(NULL);
time_t mytime; time(
В обоих случаях в mytime будет текущие дата/время.
Чтобы собственно получить дату/время и ее компоненты (часы, минуты и т.д.), нам надо получть из объекта time_t структуру tm с помощью функции localtime() :
time_t mytime = time(NULL); struct tm *now = localtime(
В функцию localtime() передается указатель на объект time_t .
Структура tm хранит данные в ряде своих элементов, каждый из которых представляет тип int :
- tm_sec : секунды от 0 до 60
- tm_min : минуты от 0 до 59
- tm_hour : часы от 0 до 23
- tm_mday : день месяца от 1 до 31
- tm_mon : месяц от 0 до 11
- tm_year : год, начиная с 1900
- tm_wday : день недели от 0 до 6 (воскресенье имеет номер 0)
- tm_yday : количество дней года, прошедших с 1 января, от 0 до 365
- tm_isdst : если больше 0, то установлен переход на летнее время. Если равно 0, то переход на летнее время не действует.
Выведем текущие дату и время на консоль:
Текущие дата и время в Excel
#include #include int main(void) < time_t mytime = time(NULL); struct tm *now = localtime( printf(«Date: %d.%d.%dn», now->tm_mday, now->tm_mon + 1, now->tm_year + 1900); printf(«Time: %d:%d:%dn», now->tm_hour, now->tm_min, now->tm_sec); return 0; >
Поскольку нумерация месяцев начинается с нуля, то к месяцу добавляем 1. Аналогично поскольку нулевым годом считается 1900 год, то к значению года добавляем 1900. В итоге консольный вывод будет типа следующего:
Date: 13.1.2023 Time: 13:13:24
Форматирование дат/времени и strftime
Функция strftime() преобразует дату и время в строку в определенном формате:
#include #include int main(void)
Функция strftime принимает четыре значения.
- Первый аргумент представляет строку, в которую помещается данные. В данном случае это массив char str[20]
- Второй аргумент представляет размер строки, которую помещаются данные. В данном случае это вся строка.
- Третий аргумент представляет спецификатор форматирования. Здесь применяется спецификатор «%T», который представляет вывод времени в формате «часы:минуты:секунды».
- И четвертый аргумент собственно представляет дату и время в виде структуры tm
То есть в данном случае мы получаем только время и помещаем отформатированную строку в массив str .
Некоторые используемые спецификаторы форматирования дат и времени
- %H возвращает часы
- %M возвращает минуты
- %S возвращает секунды
- %d возвращает номер дня
- %m возвращает номер месяца
- %h возвращает сокращенное название месяца
- %y возвращает год в виде последних двух цифр
- %Y возвращает год в виде четырех цифр
- %D выводит дату, аналогичен набору спецификаторов %m/%d/%y
- %T выводит время, аналогичен набору спецификаторов %H:%M:%S
Например, получение даты выглядело бы следующим образом:
Уроки Python / Модуль datetime
strftime(str, sizeof(str), «%D», now);
Источник: metanit.com
Учебники. Программирование для начинающих.
цены на торты на заказ Кондитерская «С Любовью» предлагает большой ассортимент тортов на заказ, пирожных, кондитерских изделий. Купите торт на заказ в Москве. Вы можете заказать торт с доставкой по Москве недорого.
Programm.ws — это сайт, на котором вы можете почитать литературу по языкам программирования , а так-же посмотреть примеры работающих программ на С++, ассемблере, паскале и много другого..
Программирование — в обычном понимании, это процесс создания компьютерных программ.
В узком смысле (так называемое кодирование) под программированием понимается написание инструкций — программ — на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне — кодерами), а те, кто разрабатывает алгоритмы — алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Более точен современный термин — «программная инженерия» (также иначе «инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.
Delphi в задачах и примерах
Общие замечания
19. Напишите программу «Электронные часы», в окне которой отображается текущее время, дата и день недели
Рис. 1.16. В окне программы Электронные часы отображается текущее время, дата и день недели
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
type
TForml — class(TForm)
Timerl: TTimer;
Labell: TLabel; // время
Label2: TLabel; // дата и день недели
procedure FormPaint(Sender: TObject);
procedure TimerlTimer(Sender: TObject);
procedure FormCreate(Sender: TObject);
// Объявление процедуры ShowTime
// помещено сюда вручную.
// Это сделано, чтобы функция имела
// доступ к компонентам формы напрямую
procedure ShowTime;
private
/ Private declarations >
public
< Public declarations j
end’;
const
stDay : array[1..7J of stringfll) =
(‘воскресенье1,’понедельник1,’вторник’,
‘среда’,’четверг’,’пятница’,¦суббота’);
stMonth : array[1..12] of string[8] =
(‘января’,’февраля’,’марта’,
‘апреля1, ‘мая’,’июня’,’июля’,
‘августа’,’сентября’, ‘октября’,
‘ноября’,’декабря’); ,
// отображает текущее время
procedure TForml.ShowTime;
var
Time: TDateTime; // текущее время
begin
Time :¦ Now(); // получить системное время
Labell.Caption := FormatDateTime(‘hh:mm:ss’,Time);
end;
// обработка события Paint
procedure TForml.FormPaint(Sender: TObject);
begin
ShowTime; // отобразить часы
end;
// обработка сигнала таймера
procedure TForml.TimerlTimer(Sender: TObject);
begin
ShowTime; // отобразить время
end;
/7 обработка события OnCreate
procedure TForml.FormCreate(Sender: TObject);
var
Present: TDateTime; // текущая дата и время
Year, Month, Day : Word; // 1Х>д, месяц и число, как
// отдельные числа
begin
Present:= Now; // получить текущую дату
DecodeDate(Present, Year, Month, Day);
Label2.Caption := ‘Сегодня ‘+IntToStr(Day)+ ‘ ‘ +
stMonth[Month] + ‘ ‘+ IntToStr(Year)+
‘ года, ‘+ stDay[DayOfWeek(Present)];
// настроить и запустить таймер
Timerl.Interval := 1000; // период сигналов таймера 1 с
Timerl.Enabled := True; // пуск таймера
end;
Источник: programm.ws
Практикум по_Delphi
begin b := StrToFloat (Edit2.Text); c := cos (b); end ; Edit3.Text := FloatToStr (c); Добавить на форму кнопки для вычисления функций Tg(x), Log a b. 2. Создать программу, выполняющую перевод чисел из десятичной системы счисления в двоичную систему и обратно. Рис. 43.
Практическая работа № 21 «Строковый калькулятор» Цель работы — создать программу, выполняющую действия строкового калькулятора. Рис. 44. Описание плана разработки программы 1. Открыть новый проект. 2. Разместить на форме экземпляры компонентов: Edit , Label , Button . Фрагмент программы procedure TForm1.Button2Click(Sender: TObject); begin s:=Edit1.Text; k:=StrToInt(Edit2.Text); t:=StrToInt(Edit3.text); Delete(s,k,t); Edit10.Text:=s; end ; procedure TForm1.Button3Click(Sender: TObject); begin s:=Edit1.Text; q:=StrToInt(Edit4.Text); w:=Edit5.Text; Insert(w,s,q); edit11.Text:=s; end ; procedure TForm1.Button4Click(Sender: TObject); begin s:=Edit1.Text; p:=StrToInt(Edit6.Text); l:=StrToInt(Edit7.Text);
Copy(s,p,l); s1:=copy(s,p,l); Edit12.Text:=s1; end ; procedure TForm1.Button5Click(Sender: TObject); begin s:=Edit1.Text; r:=Edit9.Text; a:=Pos(r,s); edit13.Text:=IntToStr(a); end ; procedure TForm1.Button6Click(Sender: TObject); begin s:=edit1.Text; b:=Length(s); edit14.Text:=IntToStr(b); end ;
Практическая работа № 22 Нахождение индекса в массиве случайных чисел Цель работы — создать программу, которая находит индекс числа в массиве случайных чисел. Описание плана разработки программы 1. Открыть новый проект. 2. Разместить на форме экземпляры компонентов: Button , Edit , Label . 3. Выполнить следующие действия:
Таблица 22. | |||
Выделенный объект | Вкладка окна | Имя свойства/ | Действие |
Object Inspector | имя события | ||
Form1 | Properties | Caption | Установка имени формы «Новый |
проект» | |||
Events | OnCreate | Очистить значения свойств Text | |
текстовых полей | |||
Button1 | Properties | Caption | Введите название «Очистить» |
Events | Onclick | Очистить значения свойств Text | |
текстовых полей | |||
Button2 | Properties | Caption | Введите название «Закрыть» |
Events | Onclick | Обработка события закрытия | |
формы | |||
Button3 | Properties | Caption | Введите название «Найти первый |
индекс» | |||
Events | Onclick | Обработка события нахождения | |
индекса введенного числа | |||
Button4 | Properties | Caption | Введите название «Ввести |
случайным образом» | |||
Events | Onclick | Ввод массива случайным образом | |
Edit1 | Properties | Caption | Очистить значение свойства Text |
Edit2 | Properties | Caption | Очистить значение свойства Text |
Edit3 | Properties | Caption | Очистить значение свойства Text |
4. Введите переменные ik, k, i : integer; s : string; a : array [1..15] of integer. 5. Сохраните проект, запустите и протестируйте его. Листинг программы procedure Tform1.FormCreate(Sender: Tobject); begin Edit1.Text := ‘’; Edit2.Text := ‘’; Edit3.Text := ‘’; end ; procedure Tform1.Button1Click(Sender: Tobject); begin Edit1.Text := ‘’; Edit2.Text := ‘’; Edit3.Text := ‘’; end ; procedure Tform1.Button2Click(Sender: Tobject); begin close;
end ; procedure Tform1.Button3Click(Sender: Tobject); begin k := StrToInt (Edit2.Text); For i:= 1 to 15 do if k = a[i] then ik := i; if ik = 0 then Edit3.Text := ‘number ubsent’ else Edit3.Text := IntToStr (ik); end ; procedure Tform1.Button4Click(Sender: Tobject); begin randomize; s := ‘’; For i := 1 to 15 do begin a[i] := random (26); s := concat (s, IntToStr (a[i]), #32); end ; Edit1.Text := s; end ; end . Вид проекта по действиям: Рис. 45.
Практическая работа № 23 Находение минимального и максимального числа в массиве Цель работы — создать программу, которая находит минимальное и максимальное числа в введенном массиве. Описание плана разработки программы 1. Открыть новый проект. 2. Разместить на форме экземпляры компонентов: Button , Edit , Label . 3. Выполнить следующие действия:
Таблица 23. | |||
Выделенный объект | Вкладка окна | Имя свойства/ | Действие |
Object Inspector | имя события | ||
Form1 | Properties | Caption | Установка имени формы «Поиск» |
Events | OnCreate | Очистить значения свойств Text | |
текстовых полей | |||
Button1 | Properties | Caption | Введите название «Очистить» |
Events | Onclick | Очистить значения свойств Text | |
текстовых полей | |||
Button2 | Properties | Caption | Введите название «Закрыть» |
Events | Onclick | Обработка события закрытия | |
формы | |||
Button3 | Properties | Caption | Введите название «Поиск» |
Events | Onclick | Обработка события нахождения | |
минимального и максимального | |||
чисел во введенном массиве | |||
Edit1 | Properties | Caption | Очистить значение свойства Text |
Edit2 | Properties | Caption | Очистить значение свойства Text |
Edit3 | Properties | Caption | Очистить значение свойства Text |
4. Введите переменные s, ss: string ; a: array [1..15] of integer; I, j, k, max, min, p, code : integer. 5. Сохраните проект, запустите и протестируйте его. Листинг подпрограмм procedure Tform1.FormCreate(Sender: Tobject); begin Edit1.Text := ‘’; Edit2.Text := ‘’; Edit3.Text := ‘’; end ; procedure Tform1.Button1Click(Sender: Tobject); begin Edit1.Text := ‘’; Edit2.Text := ‘’; Edit3.Text := ‘’; end ; procedure Tform1.Button2Click(Sender: Tobject); begin close;
end ; procedure Tform1.Button3Click(Sender: Tobject); begin s :=Edit1.Text; s := concat (s, #32); i := 0; while Length (s) > 0 do begin i := i+1; p := pos (#32,s); ss := copy (s,1,p-1); Val (ss,k,code); a[i] := k; delete (s,1,p); end ; max := a[1]; For j := 1 to i do if max < a[j] then max := a[j]; min := a[1]; For j := 1 to i do if min >a[j] then min := a[j]; Edit3.Text := IntToStr (max); Edit2.Text := IntToStr (min); end ; Рис. 46.
Практическая работа № 24 «Текущее время и текущая дата» Цель работы — создать программу, которая выводит текущее время и текущую дату. Описание плана разработки программы 1. Открыть новый проект. 2. Разместить на форме экземпляры компонентов: Button , Edit , Label . 3. Выполнить следующие действия:
Таблица 24. | |||
Выделенный объект | Вкладка окна | Имя свойства/ | Действие |
Object Inspector | имя события | ||
Form1 | Properties | Caption | Установка имени формы «Таймер» |
Button1 | Properties | Caption | Введите название «Текущее время» |
Events | Onclick | DateTime:=Time; | |
Edit1.Text:=TimeToStr(DateTime); | |||
Button2 | Properties | Caption | Введите название «Текущая дата» |
Events | Onclick | Edit2.Text:=DateToStr(Date); | |
Edit1 | Properties | Caption | Очистить значение свойства Text |
Edit2 | Properties | Caption | Очистить значение свойства Text |
Рис. 47. Листинг подпрограмм var DateTime : TdateTime; procedure Tform1.Button1Click(Sender: Tobject); begin DateTime:=Time; Edit1.Text:=TimeToStr(DateTime); end ; procedure Tform1.Button2Click(Sender: Tobject); begin Edit2.Text:=DateToStr(Date); end ; end .
Практическая работа № 25 «Электронные часы» Цель работы — написать программу «Электронные часы», в окне которой отображается текущее время, дата и день недели. Рис. 48. Описание плана разработки программы 1. Открыть новый проект. 2. Разместить на форме экземпляры компонентов: Label, Timer . 3. Выполнить следующие действия: 3.1. Ввести константы, отвечающие за названия дней недели и месяцев. 3.2.
Объявить процедуру ShowTime вручную для доступа к компонентам формы напрямую. 3.3. Процедура ShowTime отображает текущее время. 3.4. Процедура FormTime обрабатывает событие Paint. 3.5. Процедура Timer1Timer обрабатывает сигнал таймера.
3.6. Процедура FormCreate обрабатывает событие OnCreate. Листинг программы: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; Label1: TLabel; // время Label2: TLabel; // дата и день недели procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure ShowTime; private < Private declarations >public < Public declarations >end; var Form1: TForm1; implementation
const stDay : array [1..7] of string [11] = (‘воскресенье’,’понедельник’,’вторник’, ‘среда’,’четверг’,’пятница’,’суббота’); stMonth : array [1..12] of string [8] = (‘января’,’февраля’,’марта’, ‘апреля’,’мая’,’июня’,’июля’, ‘августа’,’сентября’,’октября’, ‘ноября’,’декабря’); procedure TForm1.ShowTime; var Time : TDateTime; // текущее время begin Time := Now(); // получить системное время Label1.Caption := FormatDateTime(‘hh:mm:ss’,Time); end ; procedure TForm1.Timer1Timer(Sender: TObject); begin ShowTime; // отобразить время end ; procedure TForm1.FormCreate(Sender: TObject); var Present: TDateTime; // текущая дата и время Year, Month, Day : Word; // год, месяц и число, как // отдельные числа begin Present:= Now; // получить текущую дату DecodeDate(Present, Year, Month, Day); Label2.Caption := ‘Сегодня ‘+IntToStr(Day)+ ‘ ‘ + stMonth[Month] + ‘ ‘+ IntToStr(Year)+ ‘ года, ‘+ stDay[DayOfWeek(Present)]; // настроить и запустить таймер Timer1.Interval := 1000; // период сигналов таймера 1 с Timer1.Enabled := True; // пуск таймера end ; procedure TForm1.FormPaint(Sender: TObject); begin ShowTime; // отобразить часы end ; end .
Источник: studfile.net