패키지, 저장소 및 앱 카테고리 검색

패키지 상세v1.0.0

abushakir

에티오피아 달력 시스템 (ባሕረ ሃሳብ)을 위한 Dart/Flutter 패키지입니다. 에티오피아의 날짜 및 시간, 캘린더, 그리고 관련 휴일과 함께 이동 가능한 금식을 통합하는 데 도움이 됩니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
395
좋아요
51
Pub 점수
130

패키지 설치

flutter pub add abushakir

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

에티오피아 달력 시스템(ባሕረ ሃሳብ)을 구현하는 플러터/다트 패키지로, 개발자가 에티오피아 날짜, 시간, 이동식 금식 및 관련 휴일을 다룰 수 있게 해줍니다. 그레고리력과 에티오피아력 간의 정확한 변환을 지원하여 에티오피아 사용자에게 서비스하거나 종교적·문화적 날짜 계산이 필요한 애플리케이션에 이상적입니다. 이 패키지는 모든 주요 플랫폼과 호환되며 플러터 프로젝트에 원활하게 통합됩니다.

사용 사례

  • 종교 앱에 에티오피아 달력 통합
  • 에티오피아의 명절과 금식 지원
  • 에티오피아력과 그레고리력 간의 변환
  • 문화적으로 관련된 스케줄링 도구 구축
  • 에티오피아 역사 교육 앱 개발
  • 에티오피아를 위한 로컬 이벤트 캘린더 만들기

주요 기능

  • 완전한 에티오피아 달력 지원
  • 이동 가능한 금식 및 공휴일 계산
  • 그레고리안-에티오피아 날짜 변환
  • 크로스 플랫폼 호환성
  • 간단한 API 통합
  • 정확한 종교적 날짜 논리

적합한 대상

  • 에티오피아 사용자를 대상으로 하는 앱
  • 종교적 또는 문화적 응용
  • 교육 소프트웨어
  • 일자 기반 이벤트 기획
  • 에티오피아 달력 기능이 필요한 개발자

고려 사항

  • 에티오피아 달력 규칙을 이해해야 합니다
  • 에티오피아 고유의 날짜 논리에 제한됨
  • 완전한 사용자 경험을 위해 추가적인 현지화가 필요할 수 있습니다
  • 정확한 결과를 얻기 위해 올바른 입력에 의존
  • 일반적인 국제 날짜 처리에 적합하지 않습니다

원본 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 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.