Зациклиться

batanman
Дата: 10.03.2008 17:23:19
Всем привет. Подскажите плз. Нужно написать циклик чтоб к переменной ДатаNow (равной Now) прибавлялось ДнейNeed (равной 20), до момента когда ДатаNow будет равной первому числу первого месяца следующего года (сейчас это 01/01/2009)?
Владимир Саныч
Дата: 10.03.2008 17:55:41
Во-первых, если известно, какая дата должна получиться, то зачем ее получать таким хитрым путем? Почему нельзя просто присвоить?

Во-вторых, если идти скачками именно по 20 дней, то можно и перескочить...
batanman
Дата: 10.03.2008 18:08:13
этот циклик находится в программке которая считает када нужно получить товар на склад. Вводить не удобно, на кнопочку раз и списочек обновился с учетом новых реалий... А перескочить не страшно, нужна последняя дата которая будет < 01/01/09 (естественно с интервалом в 20 дней)...
novss
Дата: 10.03.2008 18:19:47
Есть функция DateAdd

Помоему она как раз для этого предназначена.

Best Regards
Karfaqen
Дата: 10.03.2008 18:33:43
batanman
написать циклик чтоб к переменной ДатаNow (равной Now) прибавлялось ДнейNeed (равной 20), до момента когда ДатаNow будет равной первому числу первого месяца следующего года... нужна последняя дата которая будет < 01/01/09
так можно:
Dim ДнейNeed, ДатаNow: ДнейNeed = 20: ДатаNow = Now()
Do While ДатаNow + ДнейNeed < DateSerial(Year(Now) + 1, 1, 1)
    ДатаNow = ДатаNow + ДнейNeed
Loop
MsgBox ДатаNow, , "искомая дата"
batanman
Дата: 10.03.2008 18:50:33
то что нужно, спасибо большое )))
Владимир Саныч
Дата: 10.03.2008 18:58:29
Karfaqen
Do While ДатаNow + ДнейNeed < DateSerial(Year(Now) + 1, 1, 1)

Красное - не лишнее ли?
Karfaqen
Дата: 10.03.2008 19:21:08
Владимир Саныч
Красное - не лишнее ли?
Да вроде нет.
Владимир Саныч
Дата: 10.03.2008 19:24:33
Но тогда программа остановится, когда ДатаNow + ДнейNeed отстоит от 1 января, например, на 15 дней, а сама ДатаNow на целых 35. Или я торможу?
Karfaqen
Дата: 10.03.2008 20:34:53
Владимир Саныч
тогда программа остановится, когда ДатаNow + ДнейNeed отстоит от 1 января, например, на 15 дней, а сама ДатаNow на целых 35
Программа на этом не остановится. Если ДатаNow + ДнейNeed хоть как-то отстоит от 1 января, она с маниакальным упорством зайдет в цикл, даже под бой курантов.