ecDart

基于 Abushakir-dart 包,用 Dart 语言重写了埃塞俄比亚和格里高利历。

安装

  1. 克隆仓库

     git clone https://github.com/Besufikad17/ecDart.git
  2. 安装软件包

     cd ecDart && pub get
  3. 运行测试

    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
  • 创建拉取请求

如有任何疑问和建议,可以通过我的社交媒体联系我。

GitHub

查看 Github