Jalali 表格日历
如果您有任何问题或建议,可以联系提供波斯日期(Jalali/Shamsi日期)及节假日的日历、日期选择器和日期转换器。
jalali_calendar 软件包的修改和完整版本


用法
在 Flutter pubspec.yaml 中导入此行
jalali_table_calendar: ^1.0.2
要使用日历或日期选择器,请将此行导入到您的 dart 文件中
import 'package:jalali_table_calendar/jalali_table_calendar.dart';
要使用日期转换器,请将此行导入到您的 dart 文件中
import 'package:persian_date/persian_date.dart';
导入库后,要显示日历,您可以使用 jalaliCalendar 或 jalaliCalendarPicker() 方法,构造函数中的 `context` 是必需的。
此示例创建一个日历小部件
jalaliCalendar(
context: context,
// add the events for each day
events: {
DateTime(2021,4,15):['sample event',66546],
DateTime(2021,4,14):[6,5,465,1,66546],
DateTime(2021,4,18):[6,5,465,1,66546],
DateTime(2021,4,19):[6,5,465,1,66546],
},
//make marker for every day that have some events
marker: (date,events){
return Positioned(
top: -4,
left: 0,
child: Container(
decoration: BoxDecoration(
color: Theme.of(context).textSelectionColor,
shape: BoxShape.circle),
padding: const EdgeInsets.all(6.0),
child: Text(events.length.toString()),
),
);
},
onDaySelected: (date) {
print(date);
}),
此示例将选定的日期作为 Jalali(شمسی)返回
如果您想将选定的日期转换为公历,请在构造函数中将 convertToGregorian 设置为 true
Future _selectDate() async {
String picked = await jalaliCalendarPicker(context: context); // نمایش خروجی به صورت شمسی
// await jalaliCalendarPicker(context: context,convertToGregorian: true); // نمایش خروجی به صورت میلادی
if (picked != null) setState(() => _value =picked.toString());
print(_value);
}
此示例将选定的日期作为公历(میلadi)返回
Future _selectDate() async {
String picked = await jalaliCalendarPicker(context: context,convertToGregorian: true); // نمایش خروجی به صورت میلادی
if (picked != null) setState(() => _value =picked.toString());
print(_value);
}
这些参数用于显示时间选择器
| 参数 | 操作 |
|---|---|
| showTimePicker | 设置为 true 以显示时间选择器 |
| hore24Format | 设置为 true 以 24 小时格式返回时间 |
| initialTime | 使用 TimeOfDay 设置初始时间 |
要使用日期选择器,您可以遵循此示例
要显示日期选择器,需要这些参数
minYear // min date this required for the start year in Jalali
maxYear // max date this required for the last year in jalali
confirm and cancel // widget for show text
_format // for returning date like String _format = 'yyyy-mm-dd';
onChanged // return date when the user changes the date
onConfirm // return date when the user click confirm
要设置默认日期,请使用这些参数
initialYear => for year
initialMonth => for month
initialDay => for day
完整的日期选择器示例
DatePicker.showDatePicker(
context,
minYear: 1300,
maxYear: 1450,
confirm: Text(
'Confirm',
style: TextStyle(color: Colors.red),
),
cancel: Text(
'Cancel',
style: TextStyle(color: Colors.cyan),
),
dateFormat: _format,
onChanged: (year, month, day) {
if (!showTitleActions) {
_changeDatetime(year, month, day);
}
},
onConfirm: (year, month, day) {
_changeDatetime(year, month, day);
_valuePiker = " Full date : $_datetime \n year : $year \n Month : $month \n day : $day";
}
)
void _changeDatetime(int year, int month, int day) {
setState(() {
_datetime = '$year-$month-$day';
});
}
要使用日期转换器,您可以遵循此示例
首先将此库导入到您的代码中
import 'package:persian_date/persian_date.dart';
完整的日期转换器示例
PersianDate pDate = PersianDate(gregorian: "1989-01-29");
print("Now ${pDate.getDate}");
PersianDate persianDate = PersianDate();
print("Now ${persianDate.now}");
print(persianDate.hour);
print("year ${persianDate.year}");
print("isHoliday ${persianDate.isHoliday}");
print("isHoliday ${persianDate.weekdayname}");
print(persianDate.monthname); // نام ماه
print(persianDate.month); // ماه
print(persianDate.day); // روز
print(persianDate.hour);// ساعت
print(persianDate.minute);// دقیقه
print(persianDate.second);// ثانیه
print(persianDate.millisecond); // میلی ثانیه
print(persianDate.microsecond);//
print("Parse Gregorian To Jalali ${persianDate.gregorianToJalali("2019-02-20T00:19:54.000Z","yyyy-m-d hh:nn")}");
print("Parse Jalali To Gregorian ${persianDate.jalaliToGregorian("1368-05-30 19:54", "yyyy-m-d hh:nn")}");
日期转换器支持以下格式
`"2012-02-27 13:27:00"`
`"2012-02-27 13:27:00.123456z"`
`"2012-02-27 13:27:00,123456z"`
`"20120227 13:27:00"`
`"20120227T132700"`
`"20120227"`
`"+20120227"`
`"2012-02-27T14Z"`
`"2012-02-27T14+00:00"`
`"-123450101 00:00:00 Z"`: in the year -12345.
`"2002-02-27T14:00:00-0500"`: Same as `"2002-02-27T19:00:00Z"`
| 格式 | 操作 | 格式 | 操作 |
|---|---|---|---|
| yyyy | 返回四位数的年份 | hh | 两位数的小时 |
| yy | 返回两位数的年份 | h | 一位数的小时 |
| mm | 返回两位数的月份 | HH | 24小时制两位数的小时 |
| m | 返回一位数的月份 | H | 24小时制一位数的小时 |
| MM | 月份的全称 | nn | 两位数的分钟 |
| M | 月份的简称 | n | 一位数的分钟 |
| dd | 两位数的日期 | ss | 两位数的秒 |
| d | 一位数的日期 | s | 一位数的秒 |
| w | 周数 | SS | 显示毫秒 |
| DD | 日期的全称 | S | 显示毫秒 |
| D | 日期的简称 | uuu | 显示微秒 |
| am | 显示简短的时间 | u | 显示微秒 |
| AM | 显示完整时间 | . | . |
错误报告和建议
如果您有任何问题或建议,可以联系 [email protected] 或 [email protected],即 `jalali_calendar` 软件包的作者。