www.pudn.com > ecc-0.3.16-src.zip > eccTimeLapse.cpp
/* ========================================================================== ecc - Erik's Code Collection Copyright (C) 2003-2005 - Erik Dienske This file is part of ecc. ecc is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ecc is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with ecc; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ===========================================================================*/ //--------------------------------------------------------------------------- #include#pragma hdrstop #include "eccTimeLapse.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- //=========================================================================== namespace ecc { //=========================================================================== //--------------------------------------------------------------------------- TTimeLapse::TTimeLapse() { FdtStart = NULL; // Not initialized. FRunning = false; } //--------------------------------------------------------------------------- void TTimeLapse::Start() { FdtStart = Now(); FRunning = true; } //--------------------------------------------------------------------------- void TTimeLapse::Stop() { FdtEnd = Now(); FdtElapsed = FdtEnd - FdtStart; FRunning = false; } //--------------------------------------------------------------------------- void TTimeLapse::Pause() { FdtPausedAt = Now(); FRunning = false; } //--------------------------------------------------------------------------- void TTimeLapse::Resume() { FdtStart = FdtStart + (Now() - FdtPausedAt); FRunning = true; } //--------------------------------------------------------------------------- TDateTime TTimeLapse::Elapsed() { if (FRunning) return Now() - FdtStart; else return FdtEnd - FdtStart; } //--------------------------------------------------------------------------- String TTimeLapse::AsString(const bool ms, TDateTime dt) { if ((int)dt == 0) dt = Elapsed(); dt.DecodeTime(&FHour, &FMin, &FSec, &FMSec); String str; if (FHour != 0) str = IntToStr(FHour) + " Hours, "; str += dt.FormatString("n' Minutes, 's"); if (ms) str += dt.FormatString("'.'z"); str += " Seconds"; return str; } //--------------------------------------------------------------------------- String TTimeLapse::AsStr(TDateTime dt) { if ((int)dt == 0) dt = Elapsed(); dt.DecodeTime(&FHour, &FMin, &FSec, &FMSec); String str; if (FHour != 0) str = dt.FormatString("h':'nn':'ss"); else str = dt.FormatString("n':'ss"); return str; } //--------------------------------------------------------------------------- //=========================================================================== } // namespace ecc; //===========================================================================