根据编译时间反推编译版本

This commit is contained in:
大石头 2017-03-21 18:00:34 +08:00
parent 26bc87f964
commit 3bb2387b8b
3 changed files with 39 additions and 25 deletions

View File

@ -30,8 +30,11 @@ public:
DateTime& ParseMs(Int64 ms);
DateTime& ParseDays(int days);
// 1970/1/1以来天数
int TotalDays() const;
// 1970/1/1以来秒数
int TotalSeconds() const;
// 1970/1/1以来毫秒数
Int64 TotalMs() const;
// 获取星期0~6表示星期天到星期六

View File

@ -8,68 +8,68 @@
Version::Version()
{
Major = 0;
Minor = 0;
Build = 0;
Major = 0;
Minor = 0;
Build = 0;
}
Version::Version(int value)
{
Major = value >> 24;
Minor = value >> 16;
Major = value >> 24;
Minor = value >> 16;
Build = value & 0xFFFF;
Build = value & 0xFFFF;
}
Version::Version(int major, int minor, int build)
{
Major = major;
Minor = minor;
Build = build;
Major = major;
Minor = minor;
Build = build;
}
Version::Version(const Version& ver)
{
*this = ver;
*this = ver;
}
Version::Version(Version&& ver)
{
*this = ver;
*this = ver;
}
Version& Version::operator=(const Version& ver)
{
Major = ver.Major;
Minor = ver.Minor;
Build = ver.Build;
Major = ver.Major;
Minor = ver.Minor;
Build = ver.Build;
return *this;
}
int Version::ToValue() const
{
return (Major << 24) || (Minor << 16) || Build;
return (Major << 24) | (Minor << 16) | Build;
}
int Version::CompareTo(const Version& value) const
{
int n = (int)Major - value.Major;
if(n) return n;
int n = (int)Major - value.Major;
if (n) return n;
n = (int)Minor - value.Minor;
if(n) return n;
n = (int)Minor - value.Minor;
if (n) return n;
n = (int)Build - value.Build;
if(n) return n;
n = (int)Build - value.Build;
if (n) return n;
return 0;
}
bool operator== (const Version& left, const Version& right) { return left.CompareTo(right) == 0; }
bool operator!= (const Version& left, const Version& right) { return left.CompareTo(right) != 0; }
bool operator> (const Version& left, const Version& right) { return left.CompareTo(right) > 0; }
bool operator< (const Version& left, const Version& right) { return left.CompareTo(right) < 0; }
bool operator> (const Version& left, const Version& right) { return left.CompareTo(right) > 0; }
bool operator< (const Version& left, const Version& right) { return left.CompareTo(right) < 0; }
bool operator>= (const Version& left, const Version& right) { return left.CompareTo(right) >= 0; }
bool operator<= (const Version& left, const Version& right) { return left.CompareTo(right) <= 0; }
@ -79,15 +79,24 @@ DateTime Version::Compile() const
DateTime dt(2000, 1, 1);
// Build 是2000-01-01以来的天数
dt = dt.AddDays(Build);
dt = dt.AddDays(Build);
return dt;
}
Version& Version::SetCompile(int year, int month, int day)
{
DateTime dt(2000, 1, 1);
DateTime dt2(year, month, day);
Build = (dt2 - dt).TotalDays();
return *this;
}
String Version::ToString() const
{
String str;
str = str + Major + '.' + Minor + '.' + Build;
str = str + Major + '.' + Minor + '.' + Build;
return str;
}

View File

@ -18,6 +18,7 @@ public:
Version& operator=(const Version& ver);
int ToValue() const;
operator int() const { return ToValue(); }
int CompareTo(const Version& value) const;
friend bool operator== (const Version& left, const Version& right);
@ -29,6 +30,7 @@ public:
// 根据版本号反推编译时间。
DateTime Compile() const;
Version& SetCompile(int year, int month, int day);
String ToString() const;
};