Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Заполнение массива датой

Заполнение массива датой
Я
   bebibo
 
20.01.21 - 08:22
Здравствуйте!
Задание: запросите у пользователя дату начала и дату окончания периода (в годах). Заполните массив в цикле этими годами и выведите его на экран.
Затем создайте программный код, определяющий, какие годы являются високосными. Выведите на экран результаты.
Как заполнить массив в цикле этими годами? Как определить високосный год? Подскажите пожалуйста..
   Волшебник
 
1 - 20.01.21 - 08:27
правило определения високосных годов:
    год, номер которого кратен 400, — високосный;
    остальные годы, номер которых кратен 100, — невисокосные (например, годы 1700, 1800, 1900, 2100, 2200, 2300);
    остальные годы, номер которых кратен 4, — високосные;
    остальные - невисокосные.
   bebibo
 
2 - 20.01.21 - 08:30
(1) Блин, что то не совсем понятно))
   Волшебник
 
3 - 20.01.21 - 08:32
(2) Используй операцию "%" для получения остатка от деления. Если остаток от деления = 0, значит кратен делителю.
Если Год % 400 = 0 Тогда 
   Високосный = Истина;
ИначеЕсли Год % 100 = 0 Тогда 
   Високосный = Ложь;
ИначеЕсли Год % 4 = 0 Тогда 
   Високосный = Истина;
Иначе 
   Високосный = Ложь; 
КонецЕсли;
   Bigbro
 
4 - 20.01.21 - 08:33
в каком классе сейчас информатику преподают уже?
   Волшебник
 
5 - 20.01.21 - 08:34
Например, год 2000 был високосный, но не потому что он делится на 4, а потому что он делится на 400. Это важно!
Дело в том, что если год делится на 100, то он обычно не високосный. Это такое правило григорианского календаря, который пришёл на смену юлианскому.
   bebibo
 
6 - 20.01.21 - 08:39
(5) Круто! Спасибо!
   bebibo
 
7 - 20.01.21 - 08:43
А как получить 2 числа от пользователя?
   bebibo
 
8 - 20.01.21 - 08:44
(7) Как одно - я знаю:
&НаКлиенте
Процедура КакИнтерактивноВвестиЗначениеОпределенногоТипа(Команда)
 
    Оповещение = Новый ОписаниеОповещения("ПослеВводаЗначения", 
      ЭтотОбъект);    
 
    ПоказатьВводЗначения(
        Оповещение,
        ,// пропускаем начальное значение

        "Введите значение",
        "Число"
    );
 
КонецПроцедуры

&НаКлиенте
Процедура ПослеВводаЗначения(Результат, Параметры) Экспорт    
 
    Если Не Результат = Неопределено Тогда
        Сообщить(Результат);        
    КонецЕсли;
 
КонецПроцедуры
   bebibo
 
9 - 20.01.21 - 08:46
Или лучше создать обработку и на ней 2 реквизита?
   bebibo
 
10 - 20.01.21 - 08:51
(9) Вывожу на форме обработки 2 реквизита с типом дата. Как мне из введённой пользователем даты получить только год?
   bebibo
 
11 - 20.01.21 - 08:55
А как мне получить все года в заданном интервале?
   ДенисЧ
 
12 - 20.01.21 - 08:55
"Стаж: 1 год 11 месяцев 30 дней"
...

Открой книжку по 1с. Хотя Митичкина, если Радченко для тебя ещё недоступен...
   bebibo
 
13 - 20.01.21 - 08:55
(11) Ввел 01.01.2010 и 01.01.2021 - как посчитать и вытащить все года в этом периоде?
   Sayan_mi
 
14 - 20.01.21 - 09:01
Для получения Годп из даты есть функция Год(<Дата>) Все года в диапазоне от даты начала ДобавитьМесяц(ДатаНачала, 12) И проверяешь не больше ли даты конца.
   Sayan_mi
 
15 - 20.01.21 - 09:02
(14) Годп - Года
   Kassern
 
16 - 20.01.21 - 09:09
(0) Это походу одно из учебных заданий в какой нить франч. Если у тебя на данном этапе уже затык и сам не можешь решить, то дальше будет еще хуже. Почитай СП про функции работы с датами
   bebibo
 
17 - 20.01.21 - 09:14
Всё получилось, спасибо!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.