From cc4be69e76709579c80efcc24801004461011c46 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期二, 14 一月 2020 11:17:09 +0800
Subject: [PATCH] s
---
lib/src/main/cpp/utils/xconvert.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/lib/src/main/cpp/utils/xconvert.cpp b/lib/src/main/cpp/utils/xconvert.cpp
index 713260b..62aeca2 100644
--- a/lib/src/main/cpp/utils/xconvert.cpp
+++ b/lib/src/main/cpp/utils/xconvert.cpp
@@ -6,6 +6,18 @@
#include <cstdint>
#include <cstring>
+#define SECONDS_PER_MINUTE 60
+#define SECONDS_PER_HOUR 3600
+#define SECONDS_PER_DAY (86400L)
+
+#define MINUTES_PER_HOUR 60
+#define MINUTES_PER_DAY 1440
+
+#define HOURS_PER_DAY 24
+
+#define DAYS_PER_WEEK 7
+#define DAYS_PER_YEAR 365
+
void ConvertPhoneNum(uint8_t *dst, int length, const char *src)
{
int p = length - 1;
@@ -59,3 +71,39 @@
}
}
}
+
+const int LibTimeDays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
+
+static inline bool TimeYearIsLeap(int year)
+{
+ if ((year % 4) || year == 2100)
+ return false;
+ else
+ return true;
+}
+
+uint32_t TimeMakeComposite(int year, int month, int day, int hour, int minute, int second)
+{
+ int i;
+ uint32_t totalSeconds;
+ int daysThisYear;
+
+ totalSeconds = second;
+ totalSeconds += minute*SECONDS_PER_MINUTE;
+ totalSeconds += hour*SECONDS_PER_HOUR;
+
+ daysThisYear = day - 1;
+ if (TimeYearIsLeap(year) && month>2)
+ daysThisYear += 1;
+
+ for (i = 0; i<(month - 1); i++)
+ daysThisYear += (int)LibTimeDays[i];
+
+ for (i = 2000; i<year; i++) {
+ daysThisYear += 365;
+ if (TimeYearIsLeap(i))
+ daysThisYear += 1;
+ }
+ totalSeconds += daysThisYear * SECONDS_PER_DAY;
+ return totalSeconds;
+}
--
Gitblit v1.8.0