搜索插件、代码仓与 APP 分类

插件详情v1.0.0

abushakir

一个用于埃塞俄比亚日历系统(ባሕረ ሃሳብ)的 Dart/Flutter 包。它可以帮助您集成埃塞俄比亚日期时间、日历以及所有与相应节日相关的可移动斋戒。

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
395
喜欢数
51
Pub 分数
130

安装插件

flutter pub add abushakir

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个 Flutter/Dart 包,实现了埃塞俄比亚日历系统(ባሕረ ሃሳብ),使开发者能够处理埃塞俄比亚日期、时间、可移动的斋戒以及相关节日。它支持格里高利历与埃塞俄比亚日历之间的精确转换,非常适合服务于埃塞俄比亚用户或需要宗教和文化日期计算的应用程序。该包可在所有主要平台上兼容,并能无缝集成到 Flutter 项目中。

适合场景

  • 在宗教类应用程序中集成埃塞俄比亚日历
  • 支持埃塞俄比亚的节日和斋戒
  • 埃塞俄比亚日历与格里高利日历之间的转换
  • 构建具有文化相关性的调度工具
  • 开发埃塞俄比亚历史教育应用
  • 为埃塞俄比亚创建本地活动日历

主要特点

  • 完整的埃塞俄比亚日历支持
  • 可移动的斋戒和节假日计算
  • 格里高利-埃塞俄比亚日期转换
  • 跨平台兼容性
  • 简单的 API 集成
  • 精确的宗教日期逻辑

适合对象

  • 面向埃塞俄比亚用户的App
  • 宗教或文化应用
  • 教育软件
  • 基于日期的活动策划
  • 需要埃塞俄比亚日历功能的开发人员

使用建议

  • 需要了解埃塞俄比亚日历规则
  • 仅限埃塞俄比亚特定的日期逻辑
  • 可能需要额外的本地化才能获得完整的用户体验
  • 依赖于正确输入以获得准确结果
  • 不适用于通用国际日期处理

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Abushakir (ባሕረ ሃሳብ)

GitHub stars GitHub forks GitHub license

The words Bahire Hasab originate from the ancient language of Ge'ez, ( Arabic: Abu Shakir) is a time-tracking method, devised by the 12th pope of Alexandria, Pope St. Dimitri.

What does it mean?

"Bahire Hasab /'bəhrɛ həsəb'/ " simply means "An age with a descriptive and chronological number". In some books it can also be found as "Hasabe Bahir", in a sense giving time an analogy, resembling a sea.

This package allows developers to implement Ethiopian Calendar and Datetime System in their application(s)`.

This package is implemented using the UNIX EPOCH which means it's not a conversion of any other calendar system into Ethiopian, for instance, Gregorian Calendar.

Unix Epoch is measured using milliseconds since 01 Jan, 1970 UTC. In unix epoch leap seconds are ignored.

Documentation

Abushakir

Demo

Ethiopian calendar

Prerequisites

Before you begin, ensure you have met the following requirements:

  • equatable= ^2.0.5

Getting started

In the pubspec.yaml of your flutter project, add the following dependency:

dependencies:
  ...
  abushakir: "^1.0.0"

In your library add the following import:

import 'package:abushakir/abushakir.dart';

Example

   /**
   * Ethiopian Datetime Module [EtDatetime]
   */
  EtDatetime now = new EtDatetime.now(); // => 2012-07-28 17:18:31.466
  print(now.date); // => {year: 2012, month: 7, day: 28}
  print(now.time); // => {h: 17, m: 18, s: 31}

  EtDatetime covidFirstConfirmed = new EtDatetime(year: 2012, month: 7, day: 4);
  EtDatetime covidFirstConfirmedEpoch =
      new EtDatetime.fromMillisecondsSinceEpoch(covidFirstConfirmed.moment);

  EtDatetime covidFirstDeath = EtDatetime.parse("2012-07-26 23:00:00");

  /// Comparison of two EtDatetime Instances
  Duration daysWithOutDeath = covidFirstConfirmed.difference(covidFirstDeath);

  assert(daysWithOutDeath.inDays == -22, true); // 22 days

  assert(covidFirstDeath.isAfter(covidFirstConfirmed), true);

  assert(covidFirstDeath.isBefore(now), true);

  assert(covidFirstConfirmed.isAtSameMomentAs(covidFirstConfirmedEpoch), true);

  /**
   * Ethiopian Calendar Module [ETC]
   */
  ETC ethiopianCalendar = new ETC(year: 2012, month: 7, day: 4);

  ///
  print(ethiopianCalendar.monthDays(geezDay: true, weekDayName:true)); // Iterable Object of the given month
  print(ethiopianCalendar.monthDays().toList()[0]); // => [2012, 7, ፩, አርብ]
  // [year, month, dateNumber, dateNameIndex], Monday as First weekday

  print(ethiopianCalendar.nextMonth); // => ETC instance of nextMonth, same year
  print(ethiopianCalendar.prevYear); // => ETC instance of prevYear, same month

  /**
   * Bahire Hasab Module [BahireHasab]
   */
  BahireHasab bh = BahireHasab(year: 2011);
//  BahireHasab bh = BahireHasab(); // Get's the current year

  print(bh.getEvangelist(returnName: true)); // => ሉቃስ

  print(bh.getSingleBealOrTsom("ትንሳኤ")); // {month: ሚያዝያ, date: 20}

  bh.allAtswamat; // => List of All fasting and Movable holidays

  /**
   * Arabic or English number (1,2,3...) to Ethiopic or GE'EZ (፩, ፪, ፫...) number Converter
   */

  var input= [1, 10, 15, 20, 25, 78, 105, 333, 450, 600, 1000, 1001, 1010, 1056, 1200, 2013, 9999, 10000];

  for (var arabic in input) {
     print(ConvertToEthiopic(arabic)); // [፩, ፲, ፲፭, ፳, ፳፭, ፸፰, ፻፭, ፫፻፴፫, ፬፻፶, ፮፻, ፲፻, ፲፻፩, ፲፻፲, ፲፻፶፮, ፲፪፻, ፳፻፲፫, ፺፱፻፺፱, ፻፻]
  }

   /*
   * Conversion from any calendar (in this case, Gregorian) into Ethiopian Calendar.
   */
    DateTime gregorian1 = new DateTime.now();
    EtDatetime ethiopian1 = new EtDatetime.fromMillisecondsSinceEpoch(gregorian1.millisecondsSinceEpoch);

    print("Gregorian := ${gregorian1.toString()} is equivalent to Ethiopian ${ethiopian1.toString()}");
    // Gregorian := 2020-09-22 23:36:37.042962 is equivalent to Ethiopian 2013-01-12 20:36:37.042
    /*
    * Conversion from Ethiopian Calendar into any calendar (in this case, Gregorian).
    */
    EtDatetime ethiopian = new EtDatetime.now();
    DateTime gregorian = new DateTime.fromMillisecondsSinceEpoch(ethiopian.moment);

    print("Ethiopian ${ethiopian.toString()} is equivalent to Gregorian := ${gregorian.toString()}");
    // Ethiopian 2013-01-12 20:36:37.044 is equivalent to Gregorian := 2020-09-22 23:36:37.044

    print("Ethiopian EPOCH := ${ethiopian.moment}"); // Ethiopian EPOCH := 1600806997044
    print("Gregorian EPOCH := ${gregorian.millisecondsSinceEpoch}"); // Gregorian EPOCH := 1600806997044

For further implementation example see this flutter application

Contributors

Thanks to the following people who have contributed to this project:

Contact

If you want to contact me you can reach me at <nabute925@gmail.com>.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

所属分类

依赖

依赖清单 1 项

源码仓库

使用此插件的项目

暂无相关数据。