Вход | Регистрация

1С:Предприятие ::

Метки:

Как программно подсчитать?.. ПРОВЕРЬ СЕБЯ!

Я
   Львенок
 
19.12.03 - 10:21
Отвечая на вопрос Forgesemi, задался любопытным вопросом. А что же такое, собственно, месяц? Ответ вроде бы очевиден... Казалось бы, да бог с ним, что в месяцах бывает разное количество дней, месяц это вот что-то такое между первым числом текущего месяца и первым числом следующего месяца. Или между вторым текущего и вторым следующего. Или между пятнадцатыми числами. Или... Ээээ... Между 28 января и 28 февраля. Или между 29 янаваря и чем? Или между тридцатым января и чем? Или даже начерное между 31 янаваря и эээ... чем, собственно?

А теперь вопрос. Не открывая конфигуратор (только по честному!), не запуская 1С вообще, скажите чему будет равна Дата2, определяемая как Дата2=ДобавитьМесяц(Дата1,1), в случае когда:
а) Дата1='28.01.03'
б) Дата1='29.01.03'
в) Дата1='30.01.03'
г) Дата1='31.01.03'

В первую очередь, проверьте себя эксперты (ну и все остальные, тоже)! ;) Если потом вы поглядите в конфгураторе, не пишете ответов, подсказок, намеков. Просто мотайте на ус. ;)
___
Искренне Ваш, Львенок.
 
 
   Львенок
 
1 - 19.12.03 - 11:00
Но сказать, правильно ли вы подумали с самого начала, здесь можно. И нужно! ;) Или написать свои ваианты ответов до того, как поглядели в 1С.
___
Искренне Ваш, Львенок
   naf
2 - 19.12.03 - 11:04
Нда уж, никогда не задумывалси... Но интуиция (первое пришедшее в голову решение) не подвела ;) Потом, когда начал думать, возникли прочие варианты Ж;)
   ally
 
3 - 19.12.03 - 12:58
Львенок, Отличный вопрос, вариант есть, но пойду проверю ;-)))
   Львенок
 
4 - 19.12.03 - 13:20
Ха-ха... Это только первая часть вопроса. Совершенно очевидно, напрашивается и вторая половина вопроса:

ДобавитьМесяц( ДобавитьМесяц(Дата1,1) ,-1) = Дата1 ???

В свою очередь после ответа на него, напрашивается САМЫЙ ГЛАВНЫЙ ВОПРОС - так что же такое месяц? ;)
___
Искренне Ваш, Львенок.
   ally
 
5 - 19.12.03 - 13:26
даа, слушай оно <>Дата1
   Львенок
 
6 - 19.12.03 - 13:28
Ничего подобного она строго <=
___
Искренне Ваш, Львенок.
   ally
 
7 - 19.12.03 - 13:34
Таааак, ладно.
Вот что я имею
//*******************************************

Процедура Выполнить()
    Дата1='31.01.03';
    Дата2=ДобавитьМесяц(Дата1,1); 
    Дата3=ДобавитьМесяц( ДобавитьМесяц(Дата1,1) ,-1);
    Дата4=ДобавитьМесяц( Дата2 ,-1);
    Сообщить(Дата2); 
    Сообщить(Дата3);
    Сообщить(Дата4);
КонецПроцедуры

Вот что я получаю:
28.02.2003
28.01.2003
28.01.2003
   ally
 
8 - 19.12.03 - 13:35
Дата4 это так дубляж на всякий случай. 28.01.2003 <>31.01.03
   ally
 
9 - 19.12.03 - 13:45
Фууу, туплю, нафиг. Да да  Строго <=
   Forgesemi
 
10 - 20.12.03 - 04:40
Привет Всем!
Львенок,ты правильно сделал что задумался.
То что ты мне дал - нормально,
только к той строке нужно добавить...
МесяцевМежду = ?(ДатаЧисло(НачДата) > ДатаЧисло(КонДата),Мес - 1,Мес)
И тогда полные месяцы.
 
 
   Forgesemi
 
11 - 20.12.03 - 05:00
Точнее вот все...
Конечно,дурачимся сдесь на  форуме ,умничаем
--------------------
МесяцевМежду=ДатаГод(Дата2)*12+ДатаМесяц(Дата2)-ДатаГод(Дата1)*12-ДатаМесяц(Дата1);
МесяцевМежду = ?(ДатаЧисло(Дата1) > ДатаЧисло(Дата2),МесяцевМежду - 1,МесяцевМежду); 

PS: В стиле уважаемого Львенка.
   Львенок
 
12 - 20.12.03 - 07:48
(11) Ну вот виидишь! Исправляешься же! Что-то вроде этого я и имел ввиду. В любом случае линейные вычисления более оправданы, чем цикл! ;) Молодец!
___
Искренне Ваш, Львенок
   А
13 - 20.12.03 - 12:51
Спорить нелюблю но ведь в линейках тоже происходит обращение к функциям некоторые из которых используют циклы и вданной ситуации не однократно,
и...впрочем оставим тему,ты тоже молодец - подобрезал меня. И я обратил внимание на этот аспект благодаря тебе.Ладно все здорово, ГЛАВНОЕ ЧТО БЫ В МИРЕ НЕ БЫЛО
ЭТОЙ СРАНОЙ ВОЙНЫ,ну вообщем пока...
   Forgesemi
 
14 - 20.12.03 - 12:58
A- это я
   Волшебник
 
15 - 20.12.03 - 13:38
(14) просьба выражаться вежливее. И лучше всего не скрываться за бессмысленными никами, потому что это тоже не вежливо. Еще это не позволит мне оценить все сообщения участника при присвоении статуса эксперта форума.


Список тем форума
 
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует