Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 14

Написать программу которая вычисляет интервал, прошедший между двумя датами

24.11.2012, 11:51. Показов 3455. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется написать программу которая вычисляет интервал, прошедший между двумя датами. Не могу понять алгоритм, который нужно использовать, чтобы учитывались дни в месяцах, високосные года и т.д. Помогите написать. Или хотя бы оъясните алгоритм.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.11.2012, 11:51
Ответы с готовыми решениями:

Написать функцию, которая принимает две даты и вычисляет разницу в днях между этими датами
Написать функцию, которая принимает две даты (то есть функция принимает шесть параметров) и вычисляет разницу в днях между этими датами....

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

Как вычислить интервал между двумя датами в структуре?
Borland C++ Вот задание: дана структура с полями число, месяц и год! Нужно составить и протестировать функцию которая вычисляет...

1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.11.2012, 14:26
Лучший ответ Сообщение было отмечено как решение

Решение

Вот писал как-то.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
uses crt;
{високосный год}
function Vis(c:word):boolean;
begin
Vis:=((c mod 100<>0)and(c mod 4=0))or(c mod 400=0);
end;
{кол. дней прошло в данном году}
function Dn_gd(a,b,c:word):word;
var k,k2:word;
begin
if Vis(c)then k2:=60 else k2:=59;
case b of
1:k:=a;
2:k:=31+a;
3:k:=k2+a;
4:k:=k2+31+a;
5:k:=k2+61+a;
6:k:=k2+92+a;
7:k:=k2+122+a;
8:k:=k2+153+a;
9:k:=k2+184+a;
10:k:=k2+214+a;
11:k:=k2+245+a;
12:k:=k2+275+a;
end;
Dn_gd:=k;
end;
{прошло дней между датами}
function Kol_dn(a1,b1,c1,a2,b2,c2:word):word;
var i,k:word;
begin
if c1=c2 then k:=Dn_gd(a2,b2,c2)-Dn_gd(a1,b1,c1)-1{если в одном году}
else {если до 1 января и после 1 января}
 begin
  if Vis(c1)then k:=366-Dn_gd(a1,b1,c1)+Dn_gd(a2,b2,c2)-1
  else k:=365-Dn_gd(a1,b1,c1)+Dn_gd(a2,b2,c2)-1
 end;
Kol_dn:=k;
end;
{проверка првильности ввода дат}
function Prov(a,b,c:word):boolean;
var k:byte;
begin
Prov:=true;
if(c<0){год отрицательный}
or not(b in [1..12]){или месяц не 1..12}
or((b in [4,6,9,11])and not(a in [1..30])){короткий месяц}
or((b in [1,3,5,7,8,10,12])and not(a in [1..31])){длинный месяц}
or((b=2)and Vis(c) and not(a in [1..29])){февраль високосный}
or((b=2)and not Vis(c) and not(a in [1..28])){февраль невисокосный}
then Prov:=false;
end;
var a1,b1,c1,a2,b2,c2,xa,xb,xc,pl:word;
begin
clrscr;
xc:=1;
xb:=1;
xa:=1;
repeat
writeln('Введите 2 даты в формате дд мм гггг вторая позднее:');
repeat
write(' дата 1 - '); {день пробел месяц пробел год}
readln(a1,b1,c1);
if not Prov(a1,b1,c1) then writeln('Ошибка, повторите ввод.');
until Prov(a1,b1,c1);
repeat
write(' дата 2 - ');
readln(a2,b2,c2);
if not Prov(a2,b2,c2) then writeln('Ошибка, повторите ввод.');
until Prov(a2,b2,c2);
if (c2<c1)or((c2=c1)and(Kol_dn(xa,xb,xc,a1,b1,c1)>Kol_dn(xa,xb,xc,a2,b2,c2))) then
writeln('Вторая дата меньше первой, повторите ввод.');
until (c2>c1)or((c2=c1)and(Kol_dn(xa,xb,xc,a1,b1,c1)<=Kol_dn(xa,xb,xc,a2,b2,c2)));
writeln('Между этими датами(исключая их) прошло ',Kol_dn(a1,b1,c1,a2,b2,c2),' дн.');
if (b2>b1)or((b2=b1)and(a2>=a1)) then pl:=c2-c1 else pl:=c2-c1-1;
readln
end.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2012, 14:26
Помогаю со студенческими работами здесь

Вычислить интервал времени между двумя датами в днях
Вычислить интервал времени между двумя датами: B днях Добавлено через 2 часа 12 минут Срочно нужно сделать эту задачку!!

Как написать программу для вычисления количества дней между двумя датами?
Как написать программу для вычисления количества дней между двумя датами? Так что бы было допустим 20.01.2020 и 04.04.2023. Что бы сначала...

Функция вычисляет разность между двумя датами в днях
Функция вычисляет разность между двумя датами в днях. Даты представлены структурой с тремя полями: год, месяц, день. Для ошибочных дат...

Написать программу, которая определяет расстояние между двумя двоичными словами
Написать программу, которая определяет расстояние между двумя двоичными словами. Программа должна работать следующим образом: пример 1)...

Функция, которая считает интервал между двумя указанными моментами времени
Создайте четыре текстовые поля - два для ввода часов и два - для ввода минут. Напишите функцию, которая считает интервал между двумя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru