ff_i_datetime
Dates and time functions.
References
-
int GetTimeStamp(string sModifier = "utc")
- Parameters:
sModifier – A SQLite datetime modifier
Returns the number of seconds since midnight on January 1, 1970.
-
struct HighResTime GetHighResTimeStamp(string sModifier = "UTC")
- Parameters:
sModifier – A SQLite datetime modifier
Returns the number of seconds and microseconds since midnight on January 1, 1970.
-
int GetRealYear(string sModifier = "utc")
- Parameters:
sModifier – A SQLite datetime modifier
Get year.
-
int GetRealMonth(string sModifier = "utc")
- Parameters:
sModifier – A SQLite datetime modifier
Get month.
-
int GetRealDay(string sModifier = "utc")
- Parameters:
sModifier – A SQLite datetime modifier
Get day.
-
int GetRealHour(string sModifier = "utc")
- Parameters:
sModifier – A SQLite datetime modifier
Get hour (24 hour format)
-
int GetRealMinute(string sModifier = "utc")
- Parameters:
sModifier – A SQLite datetime modifier
Get minutes.
-
int GetRealSecond(string sModifier = "utc")
- Parameters:
sModifier – A SQLite datetime modifier
Get seconds.
-
string GetDateString(int nYear, int nMonth, int nDay)
- Parameters:
nYear – Year
nMonth – Month
nDay – Day
- Returns:
string Date formatted as “%Y-%M-%D”
Get year, month.
-
string GetGameDate()
- Returns:
string Date formatted as “%Y-%M-%D”
Get game current date.
-
string GetRealDate(string sModifier = "utc")
- Parameters:
sModifier – A SQLite datetime modifier
- Returns:
string Date formatted as “%Y-%M-%D”
Get real world current date.
-
string GetTimeString(int nHour, int nMinutes, int nSeconds)
- Parameters:
nHour – Hour
nMinutes – Minutes
nSeconds – Seconds
- Returns:
string Date formatted as “%H-%m-%s”
Format hour, minutes, seconds.
-
string GetGameTime()
- Returns:
string Time formatted as “%H:%m:%s”
Get game current time.
-
string GetRealTime(string sModifier = "utc")
- Parameters:
sModifier – A SQLite datetime modifier
- Returns:
string Time formatted as “%H:%m:%s”
Get real world current time.
Source code
// @code
#include "ff_i_string"
//! @struct HighResTime
//! @brief Struct containing seconds and microseconds. Functionally identical to NWNX_Util_HighResTimestamp.
struct HighResTime
{
int seconds; //!< seconds The number of whole seconds (s).
int microseconds; //!< microseconds The number of whole microseconds (us).
};
// -----------------------------------------------------------------------------
//! @brief Returns the number of seconds since midnight on January 1, 1970
//! @param sModifier A SQLite datetime modifier
int GetTimeStamp(string sModifier = "utc");
int GetTimeStamp(string sModifier = "utc")
{
sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), "SELECT STRFTIME('%s', 'now', '" + sModifier + "')");
SqlStep(sqlQuery);
return SqlGetInt(sqlQuery, 0);
}
// -----------------------------------------------------------------------------
//! @brief Returns the number of seconds and microseconds since midnight on January 1, 1970
//! @param sModifier A SQLite datetime modifier
struct HighResTime GetHighResTimeStamp(string sModifier = "UTC");
struct HighResTime GetHighResTimeStamp(string sModifier = "UTC")
{
sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), ""
+ "SELECT "
+ "CAST(STRFTIME('%s', 'now', '" + sModifier + "') AS INTEGER), "
+ "CAST(SUBSTR(STRFTIME('%f', 'now', '" + sModifier + "'), 4) AS INTEGER)");
SqlStep(sqlQuery);
struct HighResTime stRetval;
stRetval.seconds = SqlGetInt(sqlQuery, 0);
stRetval.microseconds = SqlGetInt(sqlQuery, 1);
return stRetval;
}
// -----------------------------------------------------------------------------
// @brief Return localtime unit according to format: %Y,%M,%D,%H,%m or %s
// @param sModifier A SQLite datetime modifier
int _GetRealDateTime(string format, string sModifier = "UTC")
{
sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), "SELECT CAST(STRFTIME(@format, 'now', '" + sModifier + "') AS INTEGER)");
SqlBindString(sqlQuery, "@format", format);
SqlStep(sqlQuery);
return SqlGetInt(sqlQuery, 0);
}
// -----------------------------------------------------------------------------
//! @brief Get year
//! @param sModifier A SQLite datetime modifier
int GetRealYear(string sModifier = "utc");
int GetRealYear(string sModifier = "utc")
{
return _GetRealDateTime("%Y", sModifier);
}
// -----------------------------------------------------------------------------
//! @brief Get month
//! @param sModifier A SQLite datetime modifier
int GetRealMonth(string sModifier = "utc");
int GetRealMonth(string sModifier = "utc")
{
return _GetRealDateTime("%m", sModifier);
}
// -----------------------------------------------------------------------------
//! @brief Get day
//! @param sModifier A SQLite datetime modifier
int GetRealDay(string sModifier = "utc");
int GetRealDay(string sModifier = "utc")
{
return _GetRealDateTime("%d", sModifier);
}
// -----------------------------------------------------------------------------
//! @brief Get hour (24 hour format)
//! @param sModifier A SQLite datetime modifier
int GetRealHour(string sModifier = "utc");
int GetRealHour(string sModifier = "utc")
{
int nHour = _GetRealDateTime("%H", sModifier);
return nHour % 24;
}
// -----------------------------------------------------------------------------
//! @brief Get minutes
//! @param sModifier A SQLite datetime modifier
int GetRealMinute(string sModifier = "utc");
int GetRealMinute(string sModifier = "utc")
{
return _GetRealDateTime("%M", sModifier);
}
// -----------------------------------------------------------------------------
//! @brief Get seconds
//! @param sModifier A SQLite datetime modifier
int GetRealSecond(string sModifier = "utc");
int GetRealSecond(string sModifier = "utc")
{
return _GetRealDateTime("%S", sModifier);
}
// -----------------------------------------------------------------------------
//! @brief Get year, month
//! @param nYear Year
//! @param nMonth Month
//! @param nDay Day
//! @returns string Date formatted as "%Y-%M-%D"
string GetDateString(int nYear, int nMonth, int nDay);
string GetDateString(int nYear, int nMonth, int nDay)
{
return GetStringLeftPad(IntToString(nYear), 4, "0") + "-"
+ GetStringLeftPad(IntToString(nMonth), 2, "0") + "-"
+ GetStringLeftPad(IntToString(nDay), 2, "0");
}
// -----------------------------------------------------------------------------
//! @brief Get game current date
//! @returns string Date formatted as "%Y-%M-%D"
string GetGameDate();
string GetGameDate()
{
return GetDateString(GetCalendarYear(), GetCalendarMonth(), GetCalendarDay());
}
// -----------------------------------------------------------------------------
//! @brief Get real world current date
//! @param sModifier A SQLite datetime modifier
//! @returns string Date formatted as "%Y-%M-%D"
string GetRealDate(string sModifier = "utc");
string GetRealDate(string sModifier = "utc")
{
return GetDateString(GetRealYear(sModifier), GetRealMonth(sModifier), GetRealDay(sModifier));
}
// -----------------------------------------------------------------------------
//! @brief Format hour, minutes, seconds
//! @param nHour Hour
//! @param nMinutes Minutes
//! @param nSeconds Seconds
//! @returns string Date formatted as "%H-%m-%s"
string GetTimeString(int nHour, int nMinutes, int nSeconds);
string GetTimeString(int nHour, int nMinutes, int nSeconds)
{
// 0 means midnight, so modulo in case 24 was passed.
nHour = nHour % 24;
return GetStringLeftPad(IntToString(nHour), 2, "0") + ":"
+ GetStringLeftPad(IntToString(nMinutes), 2, "0") + ":"
+ GetStringLeftPad(IntToString(nSeconds), 2, "0");
}
// -----------------------------------------------------------------------------
//! @brief Get game current time
//! @returns string Time formatted as "%H:%m:%s"
string GetGameTime();
string GetGameTime()
{
return GetTimeString(GetTimeHour(), GetTimeMinute(), GetTimeSecond());
}
// -----------------------------------------------------------------------------
//! @brief Get real world current time
//! @param sModifier A SQLite datetime modifier
//! @returns string Time formatted as "%H:%m:%s"
string GetRealTime(string sModifier = "utc");
string GetRealTime(string sModifier = "utc")
{
return GetTimeString(GetRealHour(sModifier), GetRealMonth(sModifier), GetRealSecond(sModifier));
}