Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript 将今日日期转换为实数_Vbscript - Fatal编程技术网

Vbscript 将今日日期转换为实数

Vbscript 将今日日期转换为实数,vbscript,Vbscript,我在工作场所使用VBS,我想将今天的日期转换为整数,如下所示: 2018年2月1日→ 180201 有什么想法吗?我迷路了。您需要一个年、月、日或其他日期与ISO日期YYYYMMDD结合使用: IsoDate=CStr(Year(Date)) & Right("0" & CStr(Month(Date)),2) & Right("0" & CStr(Day(Date)),2) 如果需要YYMMDD日期格式: IsoDate= Right(CStr(Year(Da

我在工作场所使用VBS,我想将今天的日期转换为整数,如下所示:

2018年2月1日→ 180201


有什么想法吗?我迷路了。

您需要一个年、月、日或其他日期与ISO日期YYYYMMDD结合使用:

IsoDate=CStr(Year(Date)) & Right("0" & CStr(Month(Date)),2) & Right("0" & CStr(Day(Date)),2)
如果需要YYMMDD日期格式:

IsoDate= Right(CStr(Year(Date)),2) & Right("0" & CStr(Month(Date)),2) & Right("0" & CStr(Day(Date)),2)
然后,您可以使用CInt或其他工具将日期转换为数字

您可以使用“现在”获取当前日期和时间,并使用下面的“格式”功能以您想要的方式进行格式设置:

Function Format(dt)
    dim d, m, y
    d = Right("0" & Day(dt), 2)
    m = Right("0" & Month(dt), 2)
    y = Right(Year(dt), 2)
    Format = y & m & d
End Function
这会将值作为字符串提供给您。您希望它是一个整数,但它对于整数来说太大了,如果您尝试转换它,它将给您一个溢出异常。如果需要,可以使用CLng函数将其转换为Long:

CLng(Format(Now))

如果认真对待实数,则该问题不能与要求格式==转换为字符串日期的问题重复

那么答案也要正确

演示如何将日期部分与适当的因子相乘,并根据某些神秘规范将它们相加,得到一个整数 指出一次约会只是一次双重约会 演示:


你尝试过什么,你尝试过的又是如何失败的?理想情况下,您应该提供您尝试过的内容的详细信息,并包括关于失败原因的具体信息,以及错误消息和/或错误输出。不是代码编写服务;最好的问题是那些提供有用信息的问题,这样那些回答问题的人可以引导你设计出自己的正确答案。请看一个好问题。一个整数可以容纳+/-32K。所以80K太大了。使用长+/-2 Gig。用Mid把数字切掉。构建一个字符串。然后CLng字符串。@ACatInLove您没有注意到已经发布的答案吗?有一种更简单的方法TDay=Right“00”,DayDate,2到pad日期部分小于两位数。另外,不需要CStr,这只是噪音。为什么要链接.Net文档?输入错误,应该是TDay=Right00&DayDate,2。@Lankymart不需要两个零,一个就足够了,因为你总是至少有一个数字来自Day函数。@RacilHilan每个都有自己的,有些使用2,有些使用1。你将它包装在一个函数中,但是没有什么是没有的。嗯,我以前没有看到这个答案,但是是的,几乎所有的东西都提到了。好的,除了我在函数下的解释,这使它成为一个不同的答案。你是指将字符串转换为长的行,好的。不仅是这一行,还有上面的段落。无法将该值转换为整数。为什么要重新打开该值?OP没有表现出任何尝试,没有,它显然是重复的,事实上他们说它是一个整数是无关的。
CLng(Format(Now))
Option Explicit

Function Date2Long(dt)
  ' Add checks that make sense given your specs. Delete if you know what you are doing
  If VarType(dt) <> vbDate Then Err.Raise 4711, "need a Date", "Date2Long"
  If Year(dt) < 2001 Then Err.Raise 4712, dt & "? - need a Date >= 2001", "Date2Long"
  ' ...
  Date2Long = 10000 * (Year(dt) - 2000) + 100 * Month(dt) + Day(dt)
End Function

Dim dt, n, d 
For Each dt In Array(#2/1/2018#, #2/2/2018#, #2/3/2018#, #1/1/2001#, #11/11/2011#, #12/31/2099#, #12/31/2100#)
    n = Date2Long(dt)
    d = CDbl(dt)
    WScript.Echo TypeName(dt), dt, TypeName(n), n, TypeName(d), d, CStr(d = Fix(d)) 
Next

'WScript.Echo Date2Long("pipapo")
WScript.Echo Date2Long(#12/31/2000#)
cscript 48569157.vbs
Date 01.02.2018 Long 180201 Double 43132 Wahr
Date 02.02.2018 Long 180202 Double 43133 Wahr
Date 03.02.2018 Long 180203 Double 43134 Wahr
Date 01.01.2001 Integer 10101 Double 36892 Wahr
Date 11.11.2011 Long 111111 Double 40858 Wahr
Date 31.12.2099 Long 991231 Double 73050 Wahr
Date 31.12.2100 Long 1001231 Double 73415 Wahr
E:\work\proj\soa\48569157\vbs\48569157.vbs(6, 27) 31.12.2000? - need a Date >= 2001: Date2Long