Other

项目介绍

HowardHinnant/date 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 Other 许可证,目前获得 3.4k 个 Star、741 次 Fork。

仓库全名
HowardHinnant/date
开源许可证
Other
Star 数
3.4k
Fork 数
741
未关闭 Issue
168

README 摘要

Date Try it out on wandbox! Summary This is actually several separate C++11/C++14/C++17 libraries: 1. "date.h" is a header-only library which builds upon . It adds some new duration types, and new timepoint types. It also adds "field" types such as yearmonthday which is a struct {year, month, day}. And it provides convenient means to convert between the "field" types and the timepoint types. Documentation…

完整内容见 GitHub 原始 README 或本页 。

常见问题

date 用什么语言开发?

主要使用 C++ 编写,采用 Other 许可证,目前有 3.4k 个 Star。

date 可以免费商用吗?

仓库标注的许可证为 Other,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 date 的源码?

可以直接克隆仓库:git clone https://github.com/HowardHinnant/date.git,默认分支为 master;安装与运行步骤见仓库 README。

date 最近还在维护吗?

仓库最近一次更新为 3 天前,当前有 168 个未关闭 Issue;Star 数为 3.4k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

A date and time library based on the C++11/14/17 <chrono> header

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
5039
价值分
2288
活跃状态
活跃

语言占比

C
C++
CMake
Objective-C++
Shell

Release

README

Date

Try it out on wandbox!

Summary

This is actually several separate C++11/C++14/C++17 libraries:

  1. "date.h" is a header-only library which builds upon <chrono>. It adds some new duration types, and new time_point types. It also adds “field” types such as year_month_day which is a struct {year, month, day}. And it provides convenient means to convert between the “field” types and the time_point types.

  2. "tz.h" / "tz.cpp" are a timezone library built on top of the "date.h" library. This timezone library is a complete parser of the IANA timezone database. It provides for an easy way to access all of the data in this database, using the types from "date.h" and <chrono>. The IANA database also includes data on leap seconds, and this library provides utilities to compute with that information as well.

  3. "iso_week.h" is a header-only library built on top of the "date.h" library which implements the ISO week date calendar.

  4. "julian.h" is a header-only library built on top of the "date.h" library which implements a proleptic Julian calendar which is fully interoperable with everything above.

  5. "islamic.h" is a header-only library built on top of the "date.h" library which implements a proleptic Islamic calendar which is fully interoperable with everything above.

Standardization

Slightly modified versions of "date.h" and "tz.h" were voted into the C++20 working draft at the Jacksonville FL meeting on 2018-03-17:

Build & Test

The recommended way to use any of these libraries besides "tz.h" is to just include it. These are header-only libraries (except "tz.h").

To use "tz.h", there is a single source file (src/tz.cpp) that needs to be compiled. Here are the recommended directions: https://howardhinnant.github.io/date/tz.html#Installation.

One can run tests by cd’ing into the test subdirectory and running testit. There are known failures on all platforms except for macOS. And even on macOS if C++11 is used. If any of these failures present problems for you, there exist workarounds.

Additionally there is unsupported support for vcpkg and CMake. I don’t personally use or maintain these systems as for me they cause more problems than they solve (for this small project). If you would like to contribute to these build systems please feel free to file a PR.

You can download and install Date using the vcpkg dependency manager:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install date

The Date port in vcpkg is updated by Microsoft team members and community contributors. If the version falls behind, please create an issue or pull request on the vcpkg repository.

You can optionally build using CMake. Here is a guide of how to build and test using the CMake Makefile generator.

mkdir build
cd build
cmake -DENABLE_DATE_TESTING=ON -DBUILD_TZ_LIB=ON ../
cmake --build . --target testit # Consider '-- -j4' for multithreading

Projects using this library

If you would like your project (or product) on this list, just let me know.

评论

暂无评论