Code archives/Miscellaneous/Timestamp type
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
The particularly useful timestamp.now() returns a timestamp object containing as integers the current year, month, day, hour, minute, and second. | |||||
' --+-----------------------------------------------------------------------------------------+-- ' | This code was originally written by Sophie Kirschner (sophiek@pineapplemachine.com) | ' | It is released as public domain. Please don't interpret that as liberty to claim credit | ' | that isn't yours, or to sell this code when it could otherwise be obtained for free | ' | because that would be a really shitty thing of you to do. | ' --+-----------------------------------------------------------------------------------------+-- SuperStrict Import brl.stream Import brl.retro Type timestamp Field hour%,minute%,second% Field day%,month%,year% Function Create:timestamp(year%=2000,month%=1,day%=1,hour%=1,minute%=1,second%=1) Local n:timestamp=New timestamp n.year=year;n.month=month;n.day=day;n.hour=hour;n.minute=minute;n.second=second Return n End Function Method tostring$() Return getdate()+" - "+gettime() End Method Method todottedstring$() Return year+"."+padbefore(month,"0",2)+"."+padbefore(day,"0",2)+"."+padbefore(hour,"0",2)+"."+padbefore(minute,"0",2)+"."+padbefore(second,"0",2) End Method Method getdate$() Return padbefore(day,"0",2)+"/"+padbefore(month,"0",2)+"/"+Right(year,2) End Method Method gettime$() Local suff$=" AM" If hour>11 Then suff=" PM" Return padbefore((hour Mod 12),"0",2)+":"+padbefore(minute,"0",2)+":"+padbefore(second,"0",2)+suff End Method Method write(f:TStream) WriteInt f,hour WriteInt f,minute WriteInt f,second WriteInt f,day WriteInt f,month WriteInt f,year End Method Function read:timestamp(f:TStream) Local n:timestamp=New timestamp n.hour=ReadInt(f) n.minute=ReadInt(f) n.second=ReadInt(f) n.day=ReadInt(f) n.month=ReadInt(f) n.year=ReadInt(f) Return n End Function Function now:timestamp() Local n:timestamp=New timestamp Local time@[256],buff:Byte[256] time_(time) Local localtime:Byte Ptr=localtime_( time ) strftime_(buff,256,"%d",localtime) n.day=Int(String.FromCString(buff)) strftime_(buff,256,"%m",localtime) n.month=Int(String.FromCString(buff)) strftime_(buff,256,"%Y",localtime) n.year=Int(String.FromCString(buff)) strftime_(buff,256,"%H",localtime) n.hour=Int(String.FromCString(buff)) strftime_(buff,256,"%M",localtime) n.minute=Int(String.FromCString(buff)) strftime_(buff,256,"%S",localtime) n.second=Int(String.FromCString(buff)) Return n End Function Method compare%(o1:Object) Local o:timestamp=timestamp(o1) If year >o.year Return 1 ElseIf year <o.year Return -1 If month >o.month Return 1 ElseIf month <o.month Return -1 If day >o.day Return 1 ElseIf day <o.day Return -1 If hour >o.hour Return 1 ElseIf hour <o.hour Return -1 If minute >o.minute Return 1 ElseIf minute <o.minute Return -1 If second >o.second Return 1 ElseIf second <o.second Return -1 Return 0 End Method Function padbefore$(s$,char$,length%) While Len(s)<length s=char+s Wend Return s End Function End Type |
Comments
| ||
Very nice work, ... now all I have to do is convert it to Blitz3D. |
Code Archives Forum