Meta.cpp 1.2 KB
Newer Older
X
Xu Peng 已提交
1 2 3 4 5
/*******************************************************************************
 * Copyright 上海赜睿信息科技有限公司(Zilliz) - All Rights Reserved
 * Unauthorized copying of this file, via any medium is strictly prohibited.
 * Proprietary and confidential.
 ******************************************************************************/
6
#include <ctime>
7
#include <stdio.h>
X
Xu Peng 已提交
8
#include "Meta.h"
X
Xu Peng 已提交
9 10 11 12

namespace zilliz {
namespace vecwise {
namespace engine {
13
namespace meta {
X
Xu Peng 已提交
14

X
Xu Peng 已提交
15
DateT Meta::GetDate(const std::time_t& t, int day_delta) {
16 17
    struct tm ltm;
    localtime_r(&t, &ltm);
X
Xu Peng 已提交
18 19
    if (day_delta > 0) {
        do {
20
            ++ltm.tm_mday;
X
Xu Peng 已提交
21 22
            --day_delta;
        } while(day_delta > 0);
23
        mktime(&ltm);
X
Xu Peng 已提交
24 25
    } else if (day_delta < 0) {
        do {
26
            --ltm.tm_mday;
X
Xu Peng 已提交
27 28
            ++day_delta;
        } while(day_delta < 0);
29
        mktime(&ltm);
X
Xu Peng 已提交
30
    } else {
31
        ltm.tm_mday;
X
Xu Peng 已提交
32
    }
33
    return ltm.tm_year*10000 + ltm.tm_mon*100 + ltm.tm_mday;
34
}
X
Xu Peng 已提交
35

X
Xu Peng 已提交
36
DateT Meta::GetDateWithDelta(int day_delta) {
X
Xu Peng 已提交
37
    return GetDate(std::time(nullptr), day_delta);
38 39
}

X
Xu Peng 已提交
40 41 42 43
DateT Meta::GetDate() {
    return GetDate(std::time(nullptr), 0);
}

44
} // namespace meta
X
Xu Peng 已提交
45 46 47
} // namespace engine
} // namespace vecwise
} // namespace zilliz