Return Datestamp

Discuss any general programming issues here
Post Reply
djrikki
Posts: 682
Joined: Wed Apr 06, 2011 12:26 am

Return Datestamp

Post by djrikki »

Code: Select all

<?xml version="1.0" ?>
<CodeBench_Project name="MUI Builder" path="DH1:Home Directory/Application Files/Development/MUI Builder/MUI Builder.cbp" created="1165340540" lastmodified="1171956807">
	<plugin name="PROGDIR:Plugins/Hollywood4.CCPlugin" flags="64" exetype="0" mainscript="main.hws"/>

Code: Select all

<?xml version="1.0" ?>
<CodeBench_Project name="Application Name" path="RAM:Application Name.cbp" created="20-Feb-2015 07:33:40" lastmodified="20-Feb-2015 07:33:40">
	<plugin name="PROGDIR:Plugins/Hollywood4.CCPlugin" flags="64" exetype="0" mainscript="main.hws"/>
Checkout the second line on each code example above, how do I generate the long numerical datestamp for both the 'created' and 'lastmodified' fields?

As you can see in the above example I am using GetDateNum(#DATETIME) which clearly doesn't have the desired result.
Evolve - Rapid GUI Development tool for MUI Royale and RapaGUI
http://myevolve.wordpress.com
User avatar
airsoftsoftwair
Posts: 5887
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

Re: Return Datestamp

Post by airsoftsoftwair »

What do you mean by "long numerical timestamp"? What exactly do you want to have?
jalih
Posts: 281
Joined: Fri Jun 18, 2010 8:08 pm
Location: Finland

Re: Return Datestamp

Post by jalih »

airsoftsoftwair wrote:What do you mean by "long numerical timestamp"? What exactly do you want to have?
My guess would have been Unix time stamp, but as the numerical stamp on the first code box don't match with the date and time on the second code box... I am not really sure...

Anyway, code to convert to Unix time stamp would be something like:

Code: Select all

; Based on BlitzMax code by Zethrax
Function ToUnixTime(date, time)
  Local date = SplitStr(date, ".")
  Local time = SplitStr(time, ":")

  Local days = ToNumber(date[0])
  Local year = ToNumber(date[2])
  Local month = ToNumber(date[1])

  Local end_year
  If month > 2
	  end_year = year
  Else
	  end_year = year - 1
  EndIf

  For Local y = 1970 To end_year
	  If Mod(y, 100) = 0
		  If Mod(y, 400) = 0
			  days = days + 1
		  EndIf
	  ElseIf Mod(y, 4) = 0
		  days = days + 1
	  EndIf
  Next 

  days = days + (year - 1970) * 365

  If month > 1 Then days = days + 31
  If month > 2 Then days = days + 28
  If month > 3 Then days = days + 31
  If month > 4 Then days = days + 30
  If month > 5 Then days = days + 31
  If month > 6 Then days = days + 30
  If month > 7 Then days = days + 31
  If month > 8 Then days = days + 31
  If month > 9 Then days = days + 30
  If month > 10 Then days = days + 31
  If month > 11 Then days = days + 30
  If month > 12 Then days = days + 31

  Local hour = ToNumber(time[0])
  Local minutes = ToNumber(time[1])
  Local seconds = ToNumber(time[2])
  
  Return(days * 86400 + hour * 3600 + minutes * 60 + seconds)
EndFunction
You can test it with the following code and use some converter available on net to verify the result.

Code: Select all

DebugPrint(ToUnixTime(GetDate(), GetTime(True)))
djrikki
Posts: 682
Joined: Wed Apr 06, 2011 12:26 am

Re: Return Datestamp

Post by djrikki »

I was being quite literal with that description. I don't know how this number is arrived at. Its Simon Archer aka Rico who created Codebench. I'll ask him.
Evolve - Rapid GUI Development tool for MUI Royale and RapaGUI
http://myevolve.wordpress.com
User avatar
airsoftsoftwair
Posts: 5887
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

Re: Return Datestamp

Post by airsoftsoftwair »

It's probably an Amiga timestamp. They're not compatible to Unix timestamps because Unix time starts on January 1st, 1970 whereas Amiga time starts on January 1st, 1978. You could use jalih's code and adjust it to Amiga time, though.
Post Reply