ecDart
基于 Abushakir-dart 包,用 Dart 语言重写了埃塞俄比亚和格里高利历。
安装
-
克隆仓库
git clone https://github.com/Besufikad17/ecDart.git
-
安装软件包
cd ecDart && pub get
-
运行测试
dart test/etc_test.dart && dart test/gc_test.dart && dart test/util_test.dart
用法
埃塞俄比亚历
- 可以通过创建
EthiopianCalendar实例来实现埃塞俄比亚历。
import 'package:ecDart/calendar/EthiopianCalendar.dart';
// creating instance with paramters
var ec = new EthiopianCalendar(year: 2015, month: 1, day: 1);
print(ec.month_name); // "መስከረም"
print(ec.isHoliday); // true
print(ec.holiday_name); // "አዲስ አመት"
// creating instance that contains the current date
var now = new EthiopianCalendar.now();
print(now.year); // 2015
print(now.month_name); // "ሰኔ"
print(now.day); // 3
print(now.day_name); // "ቅዳሜ"
EthiopianCalendar实例包含一个名为toGC()的方法,用于将给定的埃塞俄比亚日期转换为格里高利日期。
import 'package:ecDart/calendar/EthiopianCalendar.dart';
// creating instance that contains the current date
var now = new EthiopianCalendar.now();
// converting the current date to gregorian
var now_gc = now.toGC();
print(now_gc.year); // 2023
print(now_gc.month_name); // "June"
print(now_gc.day); // 10
print(now_gc.day_name); // "Saturday"
EthiopianCalendar实例包含获取下个月、上个月、下一年和上一年(以埃塞俄比亚日期形式)的方法。
import 'package:ecDart/calendar/EthiopianCalendar.dart';
// creating instance that contains the current date
var now = new EthiopianCalendar.now();
// creating the next Ethiopian month
var next_month = now.nextMonth();
print(next_month.year); // 2015
print(next_month.month_name); // "ኃምሌ"
print(next_month.day); // 3
// creating the previous Ethiopian year
var previous_year = now.previousYear();
print(previous_year.year); // 2014
print(previous_year.month_name); // "ሰኔ"
print(previous_year.day); // 3
格里高利历
- 可以通过创建
GregorianCalendar实例来实现格里高利历。
import 'package:ecDart/calendar/GregorianCalendar.dart';
// creating instance with paramters
var gc = new GregorianCalendar(year: 2023, month: 6, day: 8);
print(gc.year); // 2023
print(gc.month_name); // "June"
print(gc.day_name); // "Thursday"
// creating instance that contains the current date
var now = new GregorianCalendar.now();
print(now.year); // 2023
print(now.month_name); // "June"
print(now.day_name); // "Saturday"
GregorianCalendar实例包含一个名为toEC()的方法,用于将给定的格里高利日期转换为埃塞俄比亚日期。
import 'package:ecDart/calendar/GregorianCalendar.dart';
// creating instance that contains the current date
var now = new GregorianCalendar.now();
// converting the current date to gregorian
var ec = now.toEC();
print(ec.year); // 2015
print(ec.month_name); // "ሰኔ"
print(ec.day_name); // "ቅዳሜ"
GregorianCalendar实例包含获取下个月、上个月、下一年和上一年(以格里高利日期形式)的方法。
import 'package:ecDart/calendar/GregorianCalendar.dart';
// creating instance that contains the current date
var now = new GregorianCalendar.now();
// creating the next Gregorian month
var next_month = now.nextMonth();
print(next_month.year); // 2023
print(next_month.month_name); // "July"
print(next_month.day); // 10
// creating the previous Gregorian year
var previous_year = now.previousYear();
print(previous_year.year); // 2022
print(previous_year.month_name); // "June"
print(previous_year.day); // 10
实用工具
- ecDart 包含用于计算可移动和固定节假日月份和日期的实用函数。
import 'package:ecDart/utils/util.dart';
// getting all holidays of a given Ethiopian year
var holidays = getHolidays(2015);
// getting holiday name of specific Ethiopian date
var holiday = getHoliday("የካቲት", 23, 2015);
print(holiday); // "አደዋ" (non moviable holiday)
var fasika = getHoliday("ሚያዝያ", 8, 2015);
print(fasika); // "ትንሳኤ" (moviable holiday)
节假日模型
[
{
"name": "name of the holiday",
"month": "month name of the holiday",
"day": "day of the holiday"
}
]
贡献
- 创建一个 issue 或选择一个现有的 issue
- 克隆仓库并开始处理 issue
- 创建拉取请求
如有任何疑问和建议,可以通过我的社交媒体联系我。