Files
email-tracker/external/duckdb/extension/icu/include/tz_calendar.hpp
2025-10-24 19:21:19 -05:00

41 lines
988 B
C++

//===----------------------------------------------------------------------===//
// DuckDB
//
// tz_calendar.hpp
//
//
//===----------------------------------------------------------------------===//
#pragma once
#include "unicode/calendar.h"
#include "duckdb/common/string_util.hpp"
namespace duckdb {
using CalendarPtr = duckdb::unique_ptr<icu::Calendar>;
struct TZCalendar {
TZCalendar(icu::Calendar &calendar_p, const string &cal_setting)
: calendar(CalendarPtr(calendar_p.clone())),
is_gregorian(cal_setting.empty() || StringUtil::CIEquals(cal_setting, "gregorian")),
supports_intervals(calendar->getMaximum(UCAL_MONTH) < 12) { // 0-based
}
icu::Calendar *GetICUCalendar() {
return calendar.get();
}
bool IsGregorian() const {
return is_gregorian;
}
bool SupportsIntervals() const {
return supports_intervals;
}
CalendarPtr calendar;
const bool is_gregorian;
const bool supports_intervals;
};
} // namespace duckdb