Jump to content

_DateTimeSplit Error?


Chad2
 Share

Go to solution Solved by BrewManNH,

Recommended Posts

Is the following an issue or the desired results?

When using _DateTimeSplit() 2 digit days or months are given but the return is a single digit. This can be seen in the help example for _DateTimeSplit.

#include <Date.au3>
Local $MyDate, $MyTime
_DateTimeSplit("2005/01/01 14:30", $MyDate, $MyTime)
For $x = 1 To $MyDate[0]
MsgBox(0, $x, $MyDate[$x])
Next
For $x = 1 To $MyTime[0]
MsgBox(0, $x, $MyTime[$x])
Next

The return shows: Month = 1 and Day = 1

I would expect it to show: Month = 01 and Day = 01.

This is keeping with the format of most the other date functions and the more importantly the input.

Thanks for your response.

FYI - I searched the forum and the Bug reports but did not see this issue.

Link to comment
Share on other sites

  • Solution

It appears that the _DateTimeSplit function is turning the string returned in the array into a number, which is why you don't get the leading 0. You'd need to reformat it to display it with the leading 0 if needed, StringFormat would be needed for that.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to comment
Share on other sites

Thanks for the tip on using StringFormat().

Is there a better way to do it than this? Again, using the Help Example for _DateTimeSplit()- see code

#include <Date.au3>
#include <array.au3>

Local $MyDate, $MyTime

_DateTimeSplit("2005/01/01 01:05:08", $MyDate, $MyTime)

For $x = 1 To $MyDate[0]
MsgBox(0, $x, $MyDate[$x])
Next

For $x = 1 To $MyTime[0]
MsgBox(0, $x, $MyTime[$x])
Next
;------------------------------------------------------
;-------- Update variables to two digits --------
;------------------------------------------------------
For $i = 2 To $MyDate[0] Step 1
$MyDate[$i] = StringFormat("%02s", $MyDate[$i])
Next

For $i = 1 To $MyTime[0] Step 1
$MyTime[$i] = StringFormat("%02s", $MyTime[$i])
Next

_ArrayDisplay($MyDate, "Updated to two digits")
_ArrayDisplay($MyTime, "Updated to two digits")
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...