vbs中获得两位数日期格式的方法

本文介绍了在VBS脚本中如何将日期时间格式化为统一的两位数格式,包括月份、日期、小时、分钟和秒数。通过使用简单的字符串操作函数,可以有效地避免因数字位数不同而导致的时间戳格式混乱。

自动化测试中经常要用到时间戳,而VBS自带的日期格式功能不支持两位数日期的格式,例如2009年9月9号 只能显示成200999。如果变为2009年10月20号就无辜的多了两位数20091020。如果可以把第一种情况也输出成20090909就更加清晰,也整齐。发现有两种方法可以解决这个问题:

1. 写一个函数 叫做Get2Digits

if len(month(now))=1 then month="0"&month

这样每次都调用这个函数即可。

2. 我们可以通过这个函数来构造两位数月份的规范格式:right("0"&Month(now),2),这个函数的作用实际上很简单,先给月份前面强制加字符“0”,这样格式就变成了06、08、012,然后取右边的两个字符,也就是06、08、12。这样既简短又避免了过多的if判断语句导致程序执行变慢的问题。同理,两位数日期right("0"&day(now),2)、两位数小时right("0"&hour(now),2)、两位数分钟right("0"&minute(now),2)、两位数秒数right("0"&second(now),2)。这样的函数是不是很清晰呢?显然要比第一种方法好很多。

 

呵呵  不错

### VBS 中设置或获取小数位数方法 在 Visual Basic Script (VBS) 中,可以通过内置的 `FormatNumber` 函数来控制并设置小数位数。此函数允许指定要显示的小数位数量,并自动处理四舍五入操作。 以下是详细的说明和代码示例: #### 使用 `FormatNumber` 设置小数位数 `FormatNumber` 是 VBS 提供的一个标准函数,用于格式化数字以显示特定的小数位数。它的语法如下: ```vbscript FormatNumber(Expression, [NumDigitsAfterDecimal], [IncludeLeadingDigit], [UseParensForNegativeNumbers], [GroupDigits]) ``` 其中: - **Expression**: 要格式化的数值表达式。 - **NumDigitsAfterDecimal**: 可选参数,指定返回值中的小数位数,默认为 `-1` 表示不改变原始数据的小数部分[^1]。 - **IncludeLeadingDigit**: 可选参数,指示是否强制显示前导零。 - **UseParensForNegativeNumbers**: 可选参数,指示负数是否需要用括号表示。 - **GroupDigits**: 可选参数,指示是否使用千分位分隔符。 下面是一个简单的例子,展示如何通过 `FormatNumber` 来设置小数位数: ```vbscript Dim num, formattedNum num = 3.14159265358979 formattedNum = FormatNumber(num, 2) ' 将 pi 的值保留到两位小数 WScript.Echo "Formatted Number: " & formattedNum ``` 运行以上代码会输出: `Formatted Number: 3.14` #### 获取当前数字的实际小数位数 虽然 VBS 并未提供直接获取小数位数的功能,但可以借助字符串操作实现这一目标。具体方法是将数字转换成字符串后分析其结构。例如: ```vbscript Function GetDecimalPlaces(number) Dim strNum, decimalPartLength If IsNumeric(number) Then strNum = CStr(number) ' 查找是否存在小数点 If InStr(strNum, ".") > 0 Then decimalPartLength = Len(Split(strNum, ".")(1)) Else decimalPartLength = 0 End If GetDecimalPlaces = decimalPartLength Else GetDecimalPlaces = -1 ' 返回 -1 表示输入不是一个有效的数字 End If End Function ' 测试该功能 Dim testValue testValue = 123.456789 WScript.Echo "The number of decimal places is: " & GetDecimalPlaces(testValue) ``` 这段代码定义了一个自定义函数 `GetDecimalPlaces`,它接受一个数字作为输入,并计算出实际的小数位数。对于测试值 `123.456789`,输出将是: `The number of decimal places is: 6` #### 注意事项 需要注意的是,由于浮点数在计算机内部是以二进制形式存储的,因此可能会存在一些精度损失问题[^3]。这可能导致某些情况下看似简单的小数(如 `0.1` 或 `0.2`)实际上并不能被完全精确地表示。这种现象通常不会影响大多数应用场合下的正常使用,但在高精度科学计算领域可能需要特别注意。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值