]> git.tdb.fi Git - libs/core.git/blobdiff - source/time/utils.cpp
Make to_unixtime const
[libs/core.git] / source / time / utils.cpp
index e8c048084f1861732880b17c5f38cf22cbc567e7..eefbfda7387b07775043b05de957030b29dfc6da 100644 (file)
@@ -1,19 +1,24 @@
-/*
-This file is part of libmspframework     
-Copyright © 2006  Mikko Rasa, Mikkosoft Productions
+/* $Id$
+
+This file is part of libmspcore     
+Copyright © 2006-2008  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
+
 #ifdef WIN32
 #include <windows.h>
 #else
 #include <sys/resource.h>
 #include <sys/time.h>
 #endif
+#include "datetime.h"
 #include "timedelta.h"
 #include "timestamp.h"
 #include "units.h"
 #include "utils.h"
 
+using namespace std;
+
 namespace Msp {
 namespace Time {
 
@@ -27,7 +32,7 @@ TimeStamp now()
        gettimeofday(&tv, 0);
        return TimeStamp(tv.tv_sec*1000000LL+tv.tv_usec);
 #else
-       static int64_t epoch=0;
+       static RawTime epoch=0;
        if(!epoch)
        {
                SYSTEMTIME st;
@@ -41,15 +46,20 @@ TimeStamp now()
 
                FILETIME ft;
                SystemTimeToFileTime(&st, &ft);
-               epoch=(ft.dwLowDateTime+(int64_t)ft.dwHighDateTime<<32)/10;
+               epoch=(ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10;
        }
        
        FILETIME ft;
        GetSystemTimeAsFileTime(&ft);
-       return TimeStamp((ft.dwLowDateTime+(int64_t)ft.dwHighDateTime<<32)/10-epoch);
+       return TimeStamp((ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10-epoch);
 #endif
 }
 
+string format_now(const string &fmt)
+{
+       return DateTime(now()).format(fmt);
+}
+
 /**
 Returns the CPU time used by the program so far.
 */