сколько месяцев прошло с даты



Автор Николай Каменев задал вопрос в разделе Другие языки и технологии

Вопрос по Паскалю
Вводится дата (день, месяц, год) необходимо посчитать сколько дней прошло с начала года. и получил лучший ответ

Ответ от Gennady[гуру]
Доброго времени суток.
И какая проблема? Объявляете константу и функцию, которая возвращает True для високосного года.
const
DayInMonth : array[1..12] of Byte = (31,28,31,30,31,30,31,31,30,31,30,31);
function IsLeapYear(AYear: Integer): Boolean;
begin
IsLeapYear := (AYear mod 4 = 0) and ((AYear mod 100 <> 0) or (AYear mod 400 = 0));
end;
А дальше в цикле от 1 до месяца минус 1 суммируете элементы массиваDayInMonth
TotalDays := 0;
for i:=1 to M-1 do TotalDays := TotalDays + DayInMonth[ i ];
В конце прибавляете число дней в дате
TotalDays := TotalDays + D -1;
Минус 1 потому, что текущий день еще не прошел. Ну и наконец,
if (M > 2) and IsLeapYear(Y) then TotalDays := TotalDays + 1;
Для второй задачи подсказка. Объявите массив
Chars : array['a'..'z'] of Integer;
Затем в цикле сделайте
for i:=1 to Length(S) do Inc(Chars[S[ i ]]);
А потом найдите максимальный элемент массива. Его индекс и будет наиболее встречающимся символом.
Удачи!

Ответ от Арсений Гинали[гуру]
оооооооо да я с подобной задачкой в свое время ебался долго. Тока там сложнее было. Надо ввести дату рождения и текущую, прога считала, скока дней ты прожил.
Я делал так.
если (переменная месяца) =1 то (переменная количества дней) = 0
если (переменная месяца) =2 то (переменная количества дней) = 31
если (переменная месяца) =3 то (переменная количества дней) = 31 +28
и так далее. а потом прибавлял дни. но была переменнная булевая, говорясчая, високосный ли год

Ответ от Andrew[активный]
а еще есть варианты решения?

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Вопрос по Паскалю
Вводится дата (день, месяц, год) необходимо посчитать сколько дней прошло с начала года.
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*