SOL9 2.0 Class: FileTime

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * FileTime.h 
 * Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL++2000
#pragma once
#include <sol\Object.h>
#include <time.h>

#include <sol\String.h>

namespace SOL {

class FileTime :public Object {
private:
    int            timeZone;
    FILETIME    fileTime;

public:

    static const int LOCALTIME = 0;
    static const int GMT       = 1;

public:
    const wchar_t* toString(__out _bstr_t& string)
    {
        SYSTEMTIME stFileTime = getSystemTime();
        TCHAR buffer[256];
        
        _stprintf_s(buffer, sizeof(buffer)/sizeof(buffer[0]), _T("%04d/%02d/%02d %02d:%02d:%02d") ,
            stFileTime.wYear , stFileTime.wMonth ,
            stFileTime.wDay , stFileTime.wHour ,
            stFileTime.wMinute , stFileTime.wSecond);
        string = buffer;
        return (const wchar_t*)string;
    }


public:
    FileTime(FILETIME& ft, int zone=LOCALTIME)
    {
        fileTime = ft;
        timeZone = zone;
    }


public:
    FileTime(WORD wYear, WORD wMonth, WORD wDay,
             WORD wHour=0, WORD wMinute=0, WORD wSecond=0)
    {
        SYSTEMTIME systemTime;
        systemTime.wYear = wYear;
        systemTime.wMonth = wMonth;
        systemTime.wDay = wDay;
        systemTime.wHour = wHour;
        systemTime.wMinute = wMinute;
        systemTime.wSecond = wSecond;

        SystemTimeToFileTime(&systemTime,
                &fileTime);
    }

public:
    operator FILETIME() const{
        return this->fileTime;
    }

public:
    const FILETIME getFileTime()
    {
        return fileTime;
    }

public:
    SYSTEMTIME getSystemTime()
    {
        SYSTEMTIME sysTime;
        FILETIME lt;
        if (timeZone == LOCALTIME) {
            FileTimeToLocalFileTime(&fileTime, &lt);
            FileTimeToSystemTime(&lt, &sysTime);
        } else {
            FileTimeToSystemTime(&fileTime, &sysTime);
        }
        return sysTime;
    }


};

}


Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.