From 455346070882ca552d3b483053cf3efc89c1de4a Mon Sep 17 00:00:00 2001 From: visor Date: Mon, 1 Jul 2013 23:33:46 +0900 Subject: [PATCH] now-microsec function. --- lib/util_time.cc | 11 +++++++++++ lib/util_time.h | 1 + modules/ml-time.cc | 16 ++++++++++++++++ modules/ml-time.h | 1 + 4 files changed, 29 insertions(+) diff --git a/lib/util_time.cc b/lib/util_time.cc index e6354b0..387c2fb 100644 --- a/lib/util_time.cc +++ b/lib/util_time.cc @@ -3,6 +3,7 @@ #include "ustring.h" #include #include +#include ustring strYMD (time_t t) { struct tm tv; @@ -32,6 +33,16 @@ time_t now () { return time (NULL); } +double now_microsec () { + struct timeval tv; + + if (! gettimeofday (&tv, NULL)) { + return (double)tv.tv_sec + (double)tv.tv_usec / 1000000.; + } else { + return 0.; + } +} + ustring dateCookie (time_t clock) { /* Netscape Cookie expireフォーマット */ ustring ans; diff --git a/lib/util_time.h b/lib/util_time.h index 691a953..f88ed09 100644 --- a/lib/util_time.h +++ b/lib/util_time.h @@ -10,6 +10,7 @@ class MNodePtr; ustring strYMD (time_t t); ustring mailDate (); time_t now (); +double now_microsec (); ustring dateCookie (time_t clock); void datetime_list (boost::ptr_vector& par, time_t tm); diff --git a/modules/ml-time.cc b/modules/ml-time.cc index 60a27ab..dcd56a0 100644 --- a/modules/ml-time.cc +++ b/modules/ml-time.cc @@ -69,6 +69,22 @@ MNode* ml_now (MNode* cell, MlEnv* mlenv) { } /*DOC: +===now-microsec=== + (now-microsec) -> SECOND.MICROSECOND + +*/ +//#AFUNC now-microsec ml_now_microsec +//#WIKIFUNC now-microsec +MNode* ml_now_microsec (MNode* cell, MlEnv* mlenv) { + MNode* arg = cell->cdr (); + + if (arg) + throw (uErrorWrongNumber); + + return newMNode_num (now_microsec ()); +} + +/*DOC: ===to-date=== (to-date INTEGER) -> (YEAR MONTH DAY HOUR MINUTE SECOND) diff --git a/modules/ml-time.h b/modules/ml-time.h index c85420d..538c78c 100644 --- a/modules/ml-time.h +++ b/modules/ml-time.h @@ -5,6 +5,7 @@ class MNode; class MlEnv; MNode* ml_now (MNode* cell, MlEnv* mlenv); +MNode* ml_now_microsec (MNode* cell, MlEnv* mlenv); MNode* ml_datetime3 (MNode* cell, MlEnv* mlenv); MNode* ml_date4 (MNode* cell, MlEnv* mlenv); MNode* ml_time3 (MNode* cell, MlEnv* mlenv); -- 2.11.0