代码之家  ›  专栏  ›  技术社区  ›  WilliamKF

如何在Visual Basic脚本中将月份作为整数?

  •  2
  • WilliamKF  · 技术社区  · 11 年前

    我正在尝试将当前月份作为Visual Basic脚本中的短字符串:

    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
    

    我如何使用 现在 作为访问其成员函数的对象?也许我混淆了Visual Basic功能和VB脚本?

    4 回复  |  直到 11 年前
        1
  •  3
  •   Ekkehard.Horner    11 年前

    VBScript日期不是对象-使用Month(SomeDate)函数获取月份 数字 日期:

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

    要获取月份名称(删节或完整),请使用:

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

    (从@collapsar中窃取,但使用了第二个参数的正确(布尔)类型)。

    官方文件 月份(): here MonthName()(月份名称): here

    [给出的示例是“活的”代码,如果你出现错误,那就怪你的代码]

        2
  •  2
  •   collapsar    11 年前

    试试这行代码:

    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)
    
        3
  •  1
  •   WilliamKF    11 年前

    问题是Visual Basic Script不区分大小写,并且我的变量 month 与内置的发生碰撞 Month .

        4
  •  0
  •   diyoda_    11 年前

    如给定 here here

    语法:

    Month(Now)