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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Работа с датами
nSk
сообщение 2.12.2005 20:14
Сообщение #1


Новичок
*

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

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


Можете помочь .
Как написать программу которой вводишь дату ,
и она проверяет её правельность,
тоесть если ей ввел 32 декабря она скажет что такого не бывает или там 30 февраля . формат дату такой ДЕНЬ.Месяц.Год например [ 02.12.2005 ]
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов(1 - 6)
volvo
сообщение 2.12.2005 20:26
Сообщение #2


Гость






nSk, вот программа, которая принимает 3 числа (через пробел, DD MM YYYY) и выдает корректность введенной даты...
const
days: array[1 .. 12] of byte =
(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var
D, M, Y: Integer;

begin
write('DD/MM/YYYY'); readln(D, M, Y);
if ((Y mod 4) = 0) and
not (((Y mod 100) = 0) and ((Y mod 400) <> 0)) then inc(days[2]);

if
(M >= 1) and (M <= 12) and
(D >= 1) and (D <= days[ M ])
then
writeln('correct') else writeln('not correct');
end.
 К началу страницы 
+ Ответить 
nSk
сообщение 2.12.2005 20:39
Сообщение #3


Новичок
*

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

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


спасибо smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
nSk
сообщение 2.12.2005 20:43
Сообщение #4


Новичок
*

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

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


а можешь объеснить строчки
Код

if ((Y mod 4) = 0) and
not (((Y mod 100) = 0) and ((Y mod 400) <> 0)) then inc(days[2]);




и еще хотел спросить, где можно найти статьи о Array чтоб написано доступним и понятным языком (всмысле для начинающих).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 2.12.2005 20:49
Сообщение #5


Гость






В тех строчках проверяется високосный ли введенный год, или нет... И если високосный, то число дней в феврале (второй месяц) увеличивается на 1...

Цитата
где можно найти статьи о Array

У нас в FAQ-е: FAQ: Массивы
 К началу страницы 
+ Ответить 
kamnev
сообщение 12.02.2008 18:31
Сообщение #6





Группа: Пользователи
Сообщений: 1
Пол: Мужской

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


Вот типо того:

const masiv=100;
BM:array[1..13] of integer =(0,31,59,90,120,151,181,212,243,273,304,334,365);
var
P,I1,I2 :integer;
begin
repeat
repeat
writeln('Введите дату :');
readln (Dt[i]);
val(copy(Dt[i],1,2),I1,l);
val(copy(Dt[i],4,2),I2,l);
If copy(Dt[i],3,1)<>'.' then writeln('Дата должна бать в формате дд.мм');
if I2>12 then writeln('Месяц не может быть больше 12');
until I2<=12;
If BM[I2+1]-I1<BM[I2] then writeln('День не соответствут числу дней в заданном месяце');
until (copy(Dt[i],3,1)='.') and (BM[I2+1]-I1>=BM[I2]);
P=I1+BM[I2];
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 12.02.2008 18:57
Сообщение #7


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


kamnev В следующий раз смотри пожалуйста на дату создания темы ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 25.06.2025 9:40
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"