r.Read(&v, sizeof(v));
}
+ // uint64_t
+ inline void Serialize(IWriter &w, const uint64_t v) {
+ w.Write(&v, sizeof(v));
+ }
+ inline void Deserialize(IReader &r, uint64_t *v) {
+ r.Read(v, sizeof(uint64_t));
+ }
+ inline void Deserialize(IReader &r, uint64_t &v) {
+ r.Read(&v, sizeof(v));
+ }
+
// serialization for std::string
inline void Serialize(IWriter &w, const std::string &v) {
int len = v.size();
#include <map>
#include <ctime>
#include <utils_i18n.h>
+#include <cstdint>
namespace utils {
/**
static double Difftime(const Time &end, const Time &start);
private:
- Time(double milliseconds, const std::string &tz);
+ Time(uint64_t milliseconds, const std::string &tz);
std::string timezone_;
- double milliseconds_;
+ uint64_t milliseconds_;
static const char *GetLocale();
static std::map<std::string, std::string> best_patterns_cache;
bool Time::operator==(const Time &a) const
{
- return floor(a.milliseconds_) == floor(milliseconds_);
+ return a.milliseconds_ == milliseconds_;
}
bool Time::operator>(const Time &a) const
{
- return floor(milliseconds_) > floor(a.milliseconds_);
+ return milliseconds_ > a.milliseconds_;
}
bool Time::operator<(const Time &a) const
{
- return floor(milliseconds_) < floor(a.milliseconds_);
+ return milliseconds_ < a.milliseconds_;
}
bool Time::operator>=(const Time &a) const
{
- return floor(milliseconds_) >= floor(a.milliseconds_);
+ return milliseconds_ >= a.milliseconds_;
}
bool Time::operator<=(const Time &a) const
{
- return floor(milliseconds_) <= floor(a.milliseconds_);
+ return milliseconds_ <= a.milliseconds_;
}
bool Time::operator!=(const Time &a) const
{
- return floor(milliseconds_) != floor(a.milliseconds_);
+ return milliseconds_ != a.milliseconds_;
}
double Time::Difftime(const Time &end, const Time &start)
{
- return floor(end.milliseconds_) - floor(start.milliseconds_);
+ return end.milliseconds_ - start.milliseconds_;
}
int Time::DateCompare(const Time &end, const Time &start)
return timezone;
}
-Time::Time(double milliseconds, const std::string &tz)
+Time::Time(uint64_t milliseconds, const std::string &tz)
{
timezone_ = tz;
milliseconds_ = milliseconds;
return std::string(buf);
}
-static int GetCalendarField(double milliseconds, const char *zone, const char *locale,
+static int GetCalendarField(uint64_t milliseconds, const char *zone, const char *locale,
i18n_ucalendar_date_fields_e field)
{
i18n_ucalendar_h calendar;