2016-10-12 5 views
-2

Я пытаюсь получить диапазон дат от двух дат ввода, например: «01.10.2016» и «05.10.2016» (его формат даты в SAP)HP UFT - как получить диапазон дат от двух дат ввода

Я думаю, что формат даты неправильный, если это неправильно, кто-нибудь может помочь мне в том, как преобразовать этот формат в качестве приемлемого.

Также я пытаюсь получить всю дату между двумя датами, включая лимиты, и использовать ее для автоматизации. если кто-нибудь знает, как получить все даты, помогите мне в этом.

+1

'Dim newdate: newdate = Заменить' вы (inputdate, "/" "") может затем преобразовать его в соответствующую дату с помощью 'CDate()'. – Lankymart

+0

Спасибо lankymart. Знаете ли вы, как получить все даты между двумя диапазонами дат? – Abu

+1

Зависит от того, что вы хотите сделать 'DateDiff()' позволяет сравнивать две даты и возвращать «интервал» между ними, которые могут быть в днях, месяцах, годах и т. Д. Однако, если вы хотите вернуть список дат между двумя даты, то вам нужно использовать цикл 'Do' и' DateAdd() ', чтобы увеличить дату начала на 1 день и постоянно проверять цикл, чтобы увидеть, достигли ли вы даты окончания, в то же время выводя даты между ними. В идеале, хотя вам нужно показать нам, что вы хотя бы попытались что-то сделать, предоставив [mcve]. Если это неясно, прочитайте [ask] перед публикацией. – Lankymart

ответ

4

DD.MM.YYYY - формат даты, используемый в Германии, где SAP имеет свою штаб-квартиру. Если вы используете правильный язык, вы должны иметь возможность преобразовать строку даты в дату непосредственно через CDate.

s = "01.10.2016" 
d = CDate(s) 

Если это не работает для вас (потому что ваши региональные настройки отличаются) можно, например, разделить строку в точках и построить дату из фрагментов через DateSerial:

s = "01.10.2016" 
a = Split(s, ".") 
d = DateSerial(a(2), a(1), a(0)) 

После того как вы преобразовал строки на значение даты вы можете вычислить разницу между двумя датами путем вычитания одного из другого

delta = d2 - d1 

или с помощью DateDiff функция:

delta = DateDiff("d", d1, d2) 

Отдельные даты d1 через d2 можно вычислить, например, так:

For i=0 To DateDiff("d", d1, d2) 
    WScript.Echo d1+i 
Next 
+0

Да, 'DateSerial()' определенно правильный подход. – Lankymart

+0

Спасибо Ansgar. Мне очень полезно понять датифф и DateSerial. – Abu

+0

DateSerial - хороший подход. Это делает скрипт, агрегированный язык машины. –