2013-04-21 2 views
2

Я пытаюсь получить текущий месяц в виде короткой строки в Visual Basic Script:Как получить месяц как целое в Visual Basic Script?

Dim month 
Dim mth 

month = Now.Month ' This doesn't work. 
month = Now().Month ' Tried this too. 
month = Month(Now) ' Also tried this. 

mth = MonthName(month, True) ' (e.g. "Apr" or "Mar") 

Однако я продолжаю получать ошибки во время выполнения:

Microsoft VBScript runtime error: Object required: 'Now' 
Microsoft VBScript runtime error: Object required: 'Now()' 
Microsoft VBScript runtime error: Type mismatch 'Month' 

Я могу использовать Now штраф в виде строки:

CStr(Now) 

или в виде простого значения

Dim val 
val = Now 

Как я могу использовать Now как объект для доступа к его функциям-членам? Возможно, я запутал функциональность Visual Basic с помощью VB Script?

ответ

1

Проблема заключается в том, что Visual Basic Script не чувствителен к регистру, и моя переменная month сталкивалась со встроенным Month.

+0

Я предполагаю, что это возвращается к исходным реализациям Basic, которые не чувствительны к регистру. – WilliamKF

2

попробовать эту строку кода:

MonthName(Month(Now()),1) 

автономное решение:

Dim imonth 
Dim mth 

imonth = Month(Now()) ' Also tried this. 

mth = MonthName(Month(Now())) 

WScript.Echo "mth = " & mth 
WScript.Echo "mth_short =)" & MonthName(Month(Now()),1) 
+0

Это также вызывает «Ошибка выполнения Microsoft VBScript: введите несоответствие« Месяц ». – WilliamKF

+0

Как вы выполняете код? 'cscript // nologo ' отлично работает со мной (Windows scripting host 5.8 на win7) – collapsar

+0

'cscript.exe MyCode.vbs SomeArg' в Windows 7 из пакетного файла (.bat). – WilliamKF

3

VBScript Даты не являются объектами - используйте функцию Month (SomeDate), чтобы получить месяц номер из SomeDate :

>> WScript.Echo Month(Now) 
>> 
4 

Чтобы получить имя месяца (Abreviated или полностью), использовать:

>> WScript.Echo MonthName(Month(Now()),False) 
>> WScript.Echo MonthName(Month(Now()),True) 
>> 
April 
Apr 

(украдены из @collapsar, но с использованием правильного типа (Boolean) второго параметра).

Официальные Документы для месяца(): here MONTHNAME(): here

[Образцы, приведенные в 'живой' код, если вы получаете ошибки, код виноват]

+0

То, что также получает 'That также получает ошибку времени выполнения Microsoft VBScript: Введите несоответствие« Месяц ». – WilliamKF

+0

Вам нужно каким-то образом включить определение «Месяц»? – WilliamKF

Смежные вопросы