{"id":16156409,"url":"https://github.com/kanglin/lunarcalendar","last_synced_at":"2025-07-11T00:37:58.128Z","repository":{"id":46526155,"uuid":"177746872","full_name":"KangLin/LunarCalendar","owner":"KangLin","description":":cn: 用 Qt 写的中国农历日期库","archived":false,"fork":false,"pushed_at":"2025-02-21T12:38:49.000Z","size":6657,"stargazers_count":29,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-05T18:02:42.349Z","etag":null,"topics":["calendar","chinesecalendar","lunar","lunarcalendar","qt"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KangLin.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":".github/FUNDING.yml","license":"License.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"Authors.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["https://github.com/KangLin/RabbitCommon/raw/master/Src/Resource/image/Contribute.png","https://gitee.com/kl222/RabbitCommon/raw/master/Src/Resource/image/Contribute.png","https://gitlab.com/kl222/RabbitCommon/-/raw/master/Src/Resource/image/Contribute.png"]}},"created_at":"2019-03-26T08:38:56.000Z","updated_at":"2025-06-03T10:09:53.000Z","dependencies_parsed_at":"2023-02-01T02:15:51.363Z","dependency_job_id":"101af87d-0f38-49c4-8c69-4a2dc7881772","html_url":"https://github.com/KangLin/LunarCalendar","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/KangLin/LunarCalendar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KangLin%2FLunarCalendar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KangLin%2FLunarCalendar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KangLin%2FLunarCalendar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KangLin%2FLunarCalendar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KangLin","download_url":"https://codeload.github.com/KangLin/LunarCalendar/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KangLin%2FLunarCalendar/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264697567,"owners_count":23650955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calendar","chinesecalendar","lunar","lunarcalendar","qt"],"created_at":"2024-10-10T01:44:51.079Z","updated_at":"2025-07-11T00:37:58.110Z","avatar_url":"https://github.com/KangLin.png","language":"C++","funding_links":["https://github.com/KangLin/RabbitCommon/raw/master/Src/Resource/image/Contribute.png","https://gitee.com/kl222/RabbitCommon/raw/master/Src/Resource/image/Contribute.png","https://gitlab.com/kl222/RabbitCommon/-/raw/master/Src/Resource/image/Contribute.png"],"categories":[],"sub_categories":[],"readme":"## LunarCalendar\n\nAuthor: Kang Lin \u003ckl222@126.com\u003e\n\n------------------------------------------------\n\n[:cn: 中文](README_zh_CN.md)\n\n- Project position:\n  - The main repository: https://github.com/KangLin/LunarCalendar\n  - Mirror repository:\n    - https://gitee.com/kl222/LunarCalendar\n    - https://gitlab.com/kl222/LunarCalendar\n    - https://sourceforge.net/projects/lunarcalendar/\n    - https://launchpad.net/lunarcalendar\n    - https://bitbucket.org/kl222/lunarcalendar\n- [Project home](https://kanglin.github.io/LunarCalendar/html/index.html)\n\n------------------------------------------------\n\n- [![Documentation](https://img.shields.io/badge/documentation-online-blue)](https://kanglin.github.io/LunarCalendar/html/index.html)\n\n- master\n\n[![build](https://github.com/KangLin/LunarCalendar/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/KangLin/LunarCalendar/actions/workflows/build.yml)\n[![Windows Build status](https://ci.appveyor.com/api/projects/status/p5vhmmbuql9fyfpl/branch/master?svg=true)](https://ci.appveyor.com/project/KangLin/lunarcalendar/branch/master)\n\n- develop\n\n[![build](https://github.com/KangLin/LunarCalendar/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/KangLin/LunarCalendar/actions/workflows/build.yml)\n[![Windows Build status](https://ci.appveyor.com/api/projects/status/p5vhmmbuql9fyfpl/branch/develop?svg=true)](https://ci.appveyor.com/project/KangLin/lunarcalendar/branch/develop)\n\n[![GitHub stars](https://img.shields.io/github/stars/KangLin/LunarCalendar)](https://star-history.com/#KangLin/LunarCalendar\u0026Date)\n[![Gitee stars](https://gitee.com/kl222/LunarCalendar/badge/star.svg?theme=dark)](https://gitee.com/kl222/LunarCalendar/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/KangLin/LunarCalendar)](https://github.com/KangLin/LunarCalendar/forks)\n[![GitHub issues](https://img.shields.io/github/issues/KangLin/LunarCalendar)](https://github.com/KangLin/LunarCalendar/issues)\n[![Current release](https://img.shields.io/github/release/KangLin/LunarCalendar)](https://github.com/KangLin/LunarCalendar/releases)\n[![All releases downloads](https://img.shields.io/github/downloads/KangLin/LunarCalendar/total?label=Github%20downloads)](https://github.com/KangLin/LunarCalendar/releases)\n[![Download LunarCalendar](https://img.shields.io/sourceforge/dt/lunarcalendar.svg?label=Sourceforge%20downloads)](https://sourceforge.net/projects/lunarcalendar/files/latest/download)\n\n------------------------------------------------\n\n### Table of Contents:\n- [Features](#Features)\n- [Download setup package](#Download-setup-package)\n- [Donation](#Donation)\n- [Screenshots](#Screenshots)\n- [Compile](#Compile)\n- [Other application use the library](#Other-application-use-the-library)\n- [Contribution](#Contribution)\n- [License Agreement](#License-Agreement)\n    - [The third-party libraries](#The-third-party-libraries)\n\n------------------------------------------------\n\n### Features\n\nThe lunar calendar written by Qt. It provides:\n\n- A lunar calendar library of Qt GUI, support QSS.\n   + Solar calendar\n   + Lunar calendar\n   + Solar and Lunar holiday(eg: chinese holidays. solar term etc.)\n   + Solar and Lunar anniversary (eg: birthday, wedding anniversary, etc.)\n   + User-defined task prompts on the calendar (Displayed with highlighted dots)\n   + ToolTip shows detailed tooltip content\n   + Month view\n   + Week view\n- Example\n  + A simple calendar app. Used to illustrate how to use this lunar calendar library.\n  + A complete application of this library [Calendar](https://github.com/KangLin/Calendar)\n- Cross-platform, support multiple operating systems.\n  See: [Qt5 supported platforms](https://doc.qt.io/qt-5/supported-platforms.html), [Qt6 supported platforms](https://doc.qt.io/qt-6/supported-platforms.html).\n   + [x] Windows\n   + [x] Linux、Unix\n   + [x] Android\n   + [x] Mac os\n   + [ ] IOS\n\nMac os and IOS, I don't have the corresponding equipment,\nplease compile and test the students with the corresponding equipment.\n\n### Donation\n\n[![donation](https://gitee.com/kl222/RabbitCommon/raw/master/Src/Resource/image/Contribute.png \"donation\")](https://gitee.com/kl222/RabbitCommon/raw/master/Src/Resource/image/Contribute.png \"donation\")\n\n\n### Screenshots\n- Windows\n\n![Screenshots](Docs/image/ScreenShot.png \"Screenshots\")\n![Screenshots](Docs/image/ScreenShotQss.png \"Screenshots\")\n\n- Ubuntu\n\n![Ubuntu](Docs/image/ScreenShotUbunt.png \"Ubuntu\")\n\n- Android\n\n![Android Screenshots](Docs/image/ScreenShotAndroid.png \"Android Screenshots\")\n\n- Task\n\n![Task](Docs/image/Task.png \"Task\")\n\n### [Download setup package](https://github.com/KangLin/LunarCalendar/releases/latest)\n\n- Develop library: *.zip\n- Example program installation package:\n  - Ubuntu: *.deb\n  - Windows: *.exe\n  - Android: *.apk\n- Documents: [LunarCalendar_v1.0.4_document.zip](https://github.com/KangLin/LunarCalendar/releases/download/v1.0.4/LunarCalendar_v1.0.4_document.zip)\n\n### Compile\n\n- Depend\n  + [Qt (LGPL v2.1)](http://qt.io/)\n  + [RabbitCommon](https://github.com/KangLin/RabbitCommon)\n\n  ```\n  git clone https://github.com/KangLin/RabbitCommon.git\n  ```\n\n- Create and enter the build directory\n\n        git clone --recursive https://github.com/KangLin/LunarCalendar.git\n        cd LunarCalendar\n        mkdir build\n\n- Use cmake\n  - linux\n\n        cd build\n        cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/install \\\n             -DCMAKE_BUILD_TYPE=Release \\\n             -DQt5_DIR=${QT_ROOT}/lib/cmake/Qt5 \\\n             -DRabbitCommon_ROOT=\n        cmake --build . --config Release --target install\n    \n  - windows\n\n        cd build\n        cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/install ^\n               -DCMAKE_BUILD_TYPE=Release ^\n               -DQt5_DIR=${QT_ROOT}/lib/cmake/Qt5 ^\n               -DRabbitCommon_ROOT=\n        cmake --build . --config Release --target install\n\n  - Android\n    - The host is linux\n    \n          cd build\n          # If is Qt6\n          cmake .. -DCMAKE_BUILD_TYPE=Release \\\n               -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \\\n               -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \\\n               -DANDROID_ABI=\"armeabi-v7a with NEON\" \\\n               -DANDROID_PLATFORM=android-18 \\\n               -DQT_DIR= \\\n               -DQt6_DIR= \\\n               -DRabbitCommon_ROOT=\n          cmake --build . --target all\n\n          # If is Qt5\n          cmake .. -DCMAKE_BUILD_TYPE=Release \\\n               -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \\\n               -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \\\n               -DANDROID_ABI=\"armeabi-v7a with NEON\" \\\n               -DANDROID_PLATFORM=android-18 \\\n               -DQT_DIR= \\\n               -DQt5_DIR= \\\n               -DRabbitCommon_ROOT= \n          cmake --build . --config Release --target install\n          cmake --build . --target APK\n\n    - The host is windows\n    \n          cd build\n          ; If is Qt5\n          cmake .. -G\"Unix Makefiles\" ^\n             -DCMAKE_BUILD_TYPE=Release ^\n             -DCMAKE_INSTALL_PREFIX=`pwd`/android-build ^\n             -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake ^\n             -DCMAKE_MAKE_PROGRAM=${ANDROID_NDK}/prebuilt/windows-x86_64/bin/make.exe ^\n             -DANDROID_PLATFORM=android-18 ^\n             -DANDROID_ABI=arm64-v8a ^\n             -DANDROID_ARM_NEON=ON ^\n             -DQT_DIR= ^\n             -DQt5_DIR= ^\n             -DRabbitCommon_ROOT= \n          cmake --build . --config Release --target install\n          cmake --build . --target APK\n          \n          ; If is Qt6\n          cmake .. -G\"Unix Makefiles\" ^\n             -DCMAKE_BUILD_TYPE=Release ^\n             -DCMAKE_INSTALL_PREFIX=`pwd`/android-build ^\n             -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake ^\n             -DCMAKE_MAKE_PROGRAM=${ANDROID_NDK}/prebuilt/windows-x86_64/bin/make.exe ^\n             -DANDROID_PLATFORM=android-18 ^\n             -DANDROID_ABI=arm64-v8a ^\n             -DANDROID_ARM_NEON=ON ^\n             -DQT_DIR= ^\n             -DQt6_DIR= ^\n             -DRabbitCommon_ROOT= \n          cmake --build . --target all\n\n    - Parameter Description: https://developer.android.google.cn/ndk/guides/cmake\n      + ANDROID_ABI: The following values can be taken:\n         Goal ABI. If the target ABI is not specified, CMake uses armeabi-v7a by default.\n         Valid ABI are:\n        - armeabi：CPU with software floating point arithmetic based on ARMv5TE\n        - armeabi-v7a：ARMv7-based device with hardware FPU instructions (VFP v3 D16)\n        - armeabi-v7a with NEON：Same as armeabi-v7a, but with NEON floating point instructions enabled. This is equivalent to setting -DANDROID_ABI=armeabi-v7a and -DANDROID_ARM_NEON=ON.\n        - arm64-v8a：ARMv8 AArch64 Instruction Set\n        - x86：IA-32 Instruction Set\n        - x86_64 - x86-64 Instruction Set\n      + ANDROID_NDK \u003cpath\u003e The path of installed ndk in host\n      + ANDROID_PLATFORM: For a full list of platform names and corresponding Android system images, see the [Android NDK Native API] (https://developer.android.google.com/ndk/guides/stable_apis.html)\n      + ANDROID_ARM_MODE\n      + ANDROID_ARM_NEON\n      + ANDROID_STL: Specifies the STL that CMake should use. \n        - c++_shared: The shared library variant of libc++.\n        - c++_static: The static library variant of libc++.\n        - none: No C++ standard library support.\n        - system: The system STL\n    \n    - Install apk to devices\n    \n           adb install android-build-debug.apk \n\n- Note:\n\nbefore v1.0.4 and qt6\n\n  + windows\n       If you build app. Qt does not provide openssl dynamic library for copyright reasons, so you must copy the dynamic library of openssl to the installation directory.\n        - If it is 32, you can find the dynamic library of openssl (libeay32.dll, ssleay32.dll) in the Qt installer Tools\\QtCreator\\bin directory.\n        - If it is 64-bit, you will need to download the binary installation package for openssl yourself.\n\n  + linux\n\n     ```\n     sudo apt-get install libssl1.1\n     ```\n\n### Develop\n- [Online documents](https://kanglin.github.io/LunarCalendar/html/index.html)\n- Directory\n\n```\n  |-App                                        application source code\n  |-Src                                        calendar library source code\n     |- LunarCalendar.h                        calendar interface header file\n         |- Resource\n               |- database\n                     |- chinese_holidays.sql   chinese holidays sql\n```\n\n### Other application use the library\n\n- Direct use the library source code.\n    + cmake\n        - Submodule\n            + add submodule:\n\n                  git submodule add https://github.com/KangLin/LunarCalendar.git 3th_lib/LunarCalendar\n                  git submodule update --init --recursive\n\n\n            + Add follow code in CMakeLists.txt\n\n                  add_subdirectory(3th_lib/LunarCalendar/Src)\n\n        - No submodule\n            + Download LunarCalendar source code from https://github.com/KangLin/LunarCalendar\n\n                  git clone --recursive https://github.com/KangLin/LunarCalendar.git\n\n\n            + Add follow code in CMakeLists.txt\n\n                  set(LunarCalendar_DIR $ENV{LunarCalendar_DIR} CACHE PATH \"Set LunarCalendar source code root directory.\")\n                  if(EXISTS ${LunarCalendar_DIR}/Src)\n                      add_subdirectory(${LunarCalendar_DIR}/Src ${CMAKE_BINARY_DIR}/LunarCalendar)\n                  else()\n                      message(\"1. Please download LunarCalendar source code from https://github.com/KangLin/LunarCalendar\")\n                      message(\"   ag:\")\n                      message(\"       git clone https://github.com/KangLin/LunarCalendar.git\")\n                      message(\"2. Then set cmake value or environment variable LunarCalendar_DIR to download root directory.\")\n                      message(\"   ag:\")\n                      message(FATAL_ERROR \"       cmake -DLunarCalendar_DIR= \")\n                  endif()\n\n            + Add libraries and include in CMakeLists.txt\n\n                  SET(APP_LIBS ${PROJECT_NAME} ${QT_LIBRARIES})\n                  if(TARGET LunarCalendar)\n                      target_compile_definitions(${PROJECT_NAME}\n                          PRIVATE -DLunarCalendar)\n                      target_include_directories(${PROJECT_NAME}\n                          PRIVATE \"${LunarCalendar_DIR}/Src\"\n                          \"${LunarCalendar_DIR}/Src/export\")\n                      set(APP_LIBS ${APP_LIBS} LunarCalendar)\n                  endif()\n                  target_link_libraries(${PROJECT_NAME} ${APP_LIBS})\n\n- Use in library mode\n\n    + cmake\n        - Cmake parameter LunarCalendar_DIR specifies the installation root directory\n\n                find_package(LunarCalendar)\n\n        - Add libraries and include in CMakeLists.txt\n\n                SET(APP_LIBS ${PROJECT_NAME} ${QT_LIBRARIES})\n                if(LunarCalendar_FOUND)\n                    target_compile_definitions(${PROJECT_NAME}\n                                PRIVATE -DLunarCalendar)\n                    target_include_directories(${PROJECT_NAME}\n                                PRIVATE \"${LunarCalendar_INCLUDE_DIRS}/Src\"\n                                        \"${LunarCalendar_INCLUDE_DIRS}/Src/export\")\n                    set(APP_LIBS ${APP_LIBS} ${LunarCalendar_LIBRARIES})\n                endif()\n                target_link_libraries(${PROJECT_NAME} ${APP_LIBS})\n\n### Contribution\n\n- [Question](https://github.com/KangLin/LunarCalendar/issues)\n- [Contributors](https://github.com/KangLin/LunarCalendar/graphs/contributors)\n\n### [License Agreement](License.md \"License.md\")\n\nPlease follow the license agreement for the third-party libraries below and the license and thank the authors of the third-party libraries.\n\n#### The third-party libraries\n\n- [sxtwl_cpp](https://github.com/yuangu/sxtwl_cpp)\n\n#### Other projects using this project\n\n- [Calendar](https://github.com/KangLin/Calendar)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanglin%2Flunarcalendar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkanglin%2Flunarcalendar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkanglin%2Flunarcalendar/lists"}