error in datediff

User avatar
sal21
PlatinumLounger
Posts: 4369
Joined: 26 Apr 2010, 17:36

error in datediff

Post by sal21 »

My code:

Code: Select all

dim  D1 As Date, D2 As Date
    Dim VAR_SPLIT() As String, y as long 

'NOME_FILE="AAAA-20100531-20100604"

VAR_SPLIT = Split(NOME_FILE, "-")
             
D1 = Format(CDate(VAR_SPLIT(1)), "DD/MM/YYYY")
D2 = Format(CDate(VAR_SPLIT(2)), "DD/MM/YYYY")

Y = DateDiff("d", D1, D2)
error in D1=...

I need to have in days the difference from D1 and D2

User avatar
HansV
Administrator
Posts: 78622
Joined: 16 Jan 2010, 00:14
Status: Microsoft MVP
Location: Wageningen, The Netherlands

Re: error in datediff

Post by HansV »

Code: Select all

    Dim D1 As Date, D2 As Date
    Dim VAR_SPLIT() As String, y As Long
    Dim d As String
    'NOME_FILE = "8501-20100531-20100604"

    VAR_SPLIT = Split(NOME_FILE, "-")
    d = VAR_SPLIT(1)
    D1 = DateSerial(Left(d, 4), Mid(d, 5, 2), Right(d, 2))
    d = VAR_SPLIT(2)
    D2 = DateSerial(Left(d, 4), Mid(d, 5, 2), Right(d, 2))

    y = DateDiff("d", D1, D2)
Best wishes,
Hans

User avatar
sal21
PlatinumLounger
Posts: 4369
Joined: 26 Apr 2010, 17:36

Re: error in datediff

Post by sal21 »

HansV wrote:

Code: Select all

    Dim D1 As Date, D2 As Date
    Dim VAR_SPLIT() As String, y As Long
    Dim d As String
    'NOME_FILE = "8501-20100531-20100604"

    VAR_SPLIT = Split(NOME_FILE, "-")
    d = VAR_SPLIT(1)
    D1 = DateSerial(Left(d, 4), Mid(d, 5, 2), Right(d, 2))
    d = VAR_SPLIT(2)
    D2 = DateSerial(Left(d, 4), Mid(d, 5, 2), Right(d, 2))

    y = DateDiff("d", D1, D2)
GREAT!

now based NOME_FILE = "20110131" how to calculate one month back first day and last day ?
in this case 20101201 and 20101231.

User avatar
HansV
Administrator
Posts: 78622
Joined: 16 Jan 2010, 00:14
Status: Microsoft MVP
Location: Wageningen, The Netherlands

Re: error in datediff

Post by HansV »

First day of previous month:

DateSerial(Left(NOME_FILE, 4), Mid(NOME_FILE , 5, 2) - 1, 1)

Last day of previous month:

DateSerial(Left(NOME_FILE, 4), Mid(NOME_FILE , 5, 2), 0)
Best wishes,
Hans