![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
shyrik |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
хм,у меня проблемка есть.странно, но я написал код для проги которая считает количество дней после введённой даты а чтоб было до, не могу только месяцы правельно считает а дни и год нет.помогите исправить чтоб считала до а не после.
вот код проги кот считает после введённой даты: Код Program L; Uses crt; Type god=record mes:1..12; den:1..31; god1:integer; end; Var vek:array[1..255] of god; i,m,j,c,g:integer; Begin repeat ClrScr; c:=0; with vek[1] do begin repeat write('месяц '); c:=c+1; readln(mes); until mes<13; repeat write('день '); c:=c+1; readln(den); until den<32; write('год'); readln(god1); c:=c+1; end; repeat write ('‚введите число'); c:=c+1; readln(m); until m<256; m:=m+1; for i:=2 to m do with vek[i] do begin god1:=vek[i-1].god1; mes:=vek[i-1].mes; den:=vek[i-1].den+1; g:=god1 mod 4; case mes of 1,3,5,7,8,10,12:if den>31 then begin den:=den-31; mes:=mes+1; end; 2:if g=0 then begin if den>29 then begin den:=den-29; mes:=mes+1; end; end else if den>28 then begin den:=den-28; mes:=mes+1; end; 4,6,9,11:if den>30 then begin den:=den-30; mes:=mes+1; end; end; if mes>12 then begin mes:=mes-12; god1:=god1+1; end; end; writeln('************************************'); c:=c+1; write('* '); write(vek[m].den,'.'); case vek[m].mes of 1:write('января.'); 2:write('февраля.'); 3:write('марта.'); 4:write('апреля.'); 5:write('мая.'); 6:write('июня.'); 7:write('июля.'); 8:write('августа.'); 9:write('сентебря.'); 10:write('октебря.'); 11:write('ноября.'); 12:write('декабря.'); end; writeln(vek[m].god1); gotoxy(36,c+1); writeln('*'); writeln('************************************'); write('Exit(1..9) '); readln(i); until i<>0; End. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата(shyrik @ 7.02.05 21:32) помогите исправить чтоб считала до а не после. ![]() А вообще-то вот тут есть прекрасный модуль для работы с датами. Посмотри, что непонятно - спрашивай... Модуль для работы с датами |
shyrik |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Это что значит? это значит чтоб программа выдаёт дату которая будет через н количество дней,а надо наоборот чтоб выводила до. особенно это касается дней, а то у меня при изменений ниже приведённого кода она выдаёт неправильную дату да ещё с минусом,месяцы же считает нормально,а год ваще не считает. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
По ссылке ходил?
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
shyrik
Я поменял логику работы программы... { Функция проверки, високосный ли год} Должно работать... Я ее протестировал на 3-4 значениях (и в одном году, и с переходом в предыдущий). Но мало ли что... Найдешь баги - говори, исправим :yes: |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 9:27 |