ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / OpenFOAM / global / clock / clock.C
blobe96ce881d750864c365b89b2ce34c8e1cc6c30f2
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "clock.H"
27 #include "string.H"
29 #include <sstream>
30 #include <iomanip>
32 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
34 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
36 const char *Foam::clock::monthNames[] =
38     "Jan", "Feb", "Mar", "Apr", "May", "Jun",
39     "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
43 // * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
45 time_t Foam::clock::getTime()
47     return ::time(reinterpret_cast<time_t*>(0));
51 const struct tm Foam::clock::rawDate()
53     time_t t = getTime();
54     struct tm *timeStruct = localtime(&t);
55     return *timeStruct;
59 Foam::string Foam::clock::dateTime()
61     std::ostringstream osBuffer;
63     time_t t = getTime();
64     struct tm *timeStruct = localtime(&t);
66     osBuffer
67         << std::setfill('0')
68         << std::setw(4) << timeStruct->tm_year + 1900
69         << '-' << std::setw(2) << timeStruct->tm_mon + 1
70         << '-' << std::setw(2) << timeStruct->tm_mday
71         << 'T'
72         << std::setw(2) << timeStruct->tm_hour
73         << ':' << std::setw(2) << timeStruct->tm_min
74         << ':' << std::setw(2) << timeStruct->tm_sec;
76     return osBuffer.str();
79 Foam::string Foam::clock::date()
81     std::ostringstream osBuffer;
83     time_t t = getTime();
84     struct tm *timeStruct = localtime(&t);
86     osBuffer
87         << monthNames[timeStruct->tm_mon]
88         << ' ' << std::setw(2) << std::setfill('0') << timeStruct->tm_mday
89         << ' ' << std::setw(4) << timeStruct->tm_year + 1900;
91     return osBuffer.str();
95 Foam::string Foam::clock::clockTime()
97     std::ostringstream osBuffer;
99     time_t t = getTime();
100     struct tm *timeStruct = localtime(&t);
102     osBuffer
103         << std::setfill('0')
104         << std::setw(2) << timeStruct->tm_hour
105         << ':' << std::setw(2) << timeStruct->tm_min
106         << ':' << std::setw(2) << timeStruct->tm_sec;
108     return osBuffer.str();
112 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
114 Foam::clock::clock()
116     startTime_(getTime()),
117     lastTime_(startTime_),
118     newTime_(startTime_)
122 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
124 time_t Foam::clock::elapsedClockTime() const
126     newTime_ = getTime();
127     return newTime_ - startTime_;
131 time_t Foam::clock::clockTimeIncrement() const
133     lastTime_ = newTime_;
134     newTime_ = getTime();
135     return newTime_ - lastTime_;
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 // ************************************************************************* //