Commit 56d95d224b95745b59e352a7f13dd4c74eb61c6c

Authored by wdn127929
1 parent 51df2b83

预订安排调整、录入联系人电话非必填、仅预订停留在当前页面刷新

1 -import 'package:json_annotation/json_annotation.dart';  
2 -  
3 -part 'base_info_model.g.dart'; 1 +import 'package:json_annotation/json_annotation.dart';
4 2
  3 +part 'base_info_model.g.dart';
5 4
6 @JsonSerializable() 5 @JsonSerializable()
7 - class BaseInfoModel extends Object {  
8 - 6 +class BaseInfoModel extends Object {
9 @JsonKey(name: 'ret') 7 @JsonKey(name: 'ret')
10 int ret; 8 int ret;
11 9
@@ -15,18 +13,20 @@ part 'base_info_model.g.dart'; @@ -15,18 +13,20 @@ part 'base_info_model.g.dart';
15 @JsonKey(name: 'msg') 13 @JsonKey(name: 'msg')
16 String msg; 14 String msg;
17 15
18 - BaseInfoModel(this.ret,this.data,this.msg,); 16 + BaseInfoModel(
  17 + this.ret,
  18 + this.data,
  19 + this.msg,
  20 + );
19 21
20 - factory BaseInfoModel.fromJson(Map<String, dynamic> srcJson) => _$BaseInfoModelFromJson(srcJson); 22 + factory BaseInfoModel.fromJson(Map<String, dynamic> srcJson) =>
  23 + _$BaseInfoModelFromJson(srcJson);
21 24
22 Map<String, dynamic> toJson() => _$BaseInfoModelToJson(this); 25 Map<String, dynamic> toJson() => _$BaseInfoModelToJson(this);
23 -  
24 } 26 }
25 27
26 -  
27 @JsonSerializable() 28 @JsonSerializable()
28 - class BaseInfoSunModel extends Object {  
29 - 29 +class BaseInfoSunModel extends Object {
30 @JsonKey(name: 'id') 30 @JsonKey(name: 'id')
31 String id; 31 String id;
32 32
@@ -51,12 +51,23 @@ part 'base_info_model.g.dart'; @@ -51,12 +51,23 @@ part 'base_info_model.g.dart';
51 @JsonKey(name: 'qrcode') 51 @JsonKey(name: 'qrcode')
52 String qrcode; 52 String qrcode;
53 53
54 - BaseInfoSunModel(this.id,this.sellerid,this.uid,this.photo,this.name,this.phone,this.position,this.qrcode,); 54 + @JsonKey(name: 'wechat')
  55 + String wechat;
55 56
56 - factory BaseInfoSunModel.fromJson(Map<String, dynamic> srcJson) => _$BaseInfoSunModelFromJson(srcJson); 57 + BaseInfoSunModel(
  58 + this.id,
  59 + this.sellerid,
  60 + this.uid,
  61 + this.photo,
  62 + this.name,
  63 + this.phone,
  64 + this.position,
  65 + this.qrcode,
  66 + this.wechat
  67 + );
57 68
58 - Map<String, dynamic> toJson() => _$BaseInfoSunModelToJson(this); 69 + factory BaseInfoSunModel.fromJson(Map<String, dynamic> srcJson) =>
  70 + _$BaseInfoSunModelFromJson(srcJson);
59 71
  72 + Map<String, dynamic> toJson() => _$BaseInfoSunModelToJson(this);
60 } 73 }
61 -  
62 -  
@@ -24,14 +24,16 @@ Map<String, dynamic> _$BaseInfoModelToJson(BaseInfoModel instance) => @@ -24,14 +24,16 @@ Map<String, dynamic> _$BaseInfoModelToJson(BaseInfoModel instance) =>
24 24
25 BaseInfoSunModel _$BaseInfoSunModelFromJson(Map<String, dynamic> json) { 25 BaseInfoSunModel _$BaseInfoSunModelFromJson(Map<String, dynamic> json) {
26 return BaseInfoSunModel( 26 return BaseInfoSunModel(
27 - json['id'] as String,  
28 - json['sellerid'] as String,  
29 - json['uid'] as String,  
30 - json['photo'] as String,  
31 - json['name'] as String,  
32 - json['phone'] as String,  
33 - json['position'] as String,  
34 - json['qrcode'] as String); 27 + json['id'] as String,
  28 + json['sellerid'] as String,
  29 + json['uid'] as String,
  30 + json['photo'] as String,
  31 + json['name'] as String,
  32 + json['phone'] as String,
  33 + json['position'] as String,
  34 + json['qrcode'] as String,
  35 + json['wechat'] as String,
  36 + );
35 } 37 }
36 38
37 Map<String, dynamic> _$BaseInfoSunModelToJson(BaseInfoSunModel instance) => 39 Map<String, dynamic> _$BaseInfoSunModelToJson(BaseInfoSunModel instance) =>
@@ -43,5 +45,6 @@ Map<String, dynamic> _$BaseInfoSunModelToJson(BaseInfoSunModel instance) => @@ -43,5 +45,6 @@ Map<String, dynamic> _$BaseInfoSunModelToJson(BaseInfoSunModel instance) =>
43 'name': instance.name, 45 'name': instance.name,
44 'phone': instance.phone, 46 'phone': instance.phone,
45 'position': instance.position, 47 'position': instance.position,
46 - 'qrcode': instance.qrcode 48 + 'qrcode': instance.qrcode,
  49 + 'wechat': instance.wechat
47 }; 50 };
1 -import 'package:json_annotation/json_annotation.dart';  
2 -  
3 -part 'reserve_info_model.g.dart'; 1 +import 'package:json_annotation/json_annotation.dart';
4 2
  3 +part 'reserve_info_model.g.dart';
5 4
6 @JsonSerializable() 5 @JsonSerializable()
7 - class ReserveInfoModel extends Object {  
8 - 6 +class ReserveInfoModel extends Object {
9 @JsonKey(name: 'ret') 7 @JsonKey(name: 'ret')
10 int ret; 8 int ret;
11 9
@@ -15,18 +13,20 @@ part 'reserve_info_model.g.dart'; @@ -15,18 +13,20 @@ part 'reserve_info_model.g.dart';
15 @JsonKey(name: 'msg') 13 @JsonKey(name: 'msg')
16 String msg; 14 String msg;
17 15
18 - ReserveInfoModel(this.ret,this.data,this.msg,); 16 + ReserveInfoModel(
  17 + this.ret,
  18 + this.data,
  19 + this.msg,
  20 + );
19 21
20 - factory ReserveInfoModel.fromJson(Map<String, dynamic> srcJson) => _$ReserveInfoModelFromJson(srcJson); 22 + factory ReserveInfoModel.fromJson(Map<String, dynamic> srcJson) =>
  23 + _$ReserveInfoModelFromJson(srcJson);
21 24
22 Map<String, dynamic> toJson() => _$ReserveInfoModelToJson(this); 25 Map<String, dynamic> toJson() => _$ReserveInfoModelToJson(this);
23 -  
24 } 26 }
25 27
26 -  
27 @JsonSerializable() 28 @JsonSerializable()
28 - class SunReserveInfoModel extends Object {  
29 - 29 +class SunReserveInfoModel extends Object {
30 @JsonKey(name: 'row') 30 @JsonKey(name: 'row')
31 RowModel row; 31 RowModel row;
32 32
@@ -36,18 +36,20 @@ part 'reserve_info_model.g.dart'; @@ -36,18 +36,20 @@ part 'reserve_info_model.g.dart';
36 @JsonKey(name: 'table') 36 @JsonKey(name: 'table')
37 List<dynamic> table; 37 List<dynamic> table;
38 38
39 - SunReserveInfoModel(this.row,this.list,this.table,); 39 + SunReserveInfoModel(
  40 + this.row,
  41 + this.list,
  42 + this.table,
  43 + );
40 44
41 - factory SunReserveInfoModel.fromJson(Map<String, dynamic> srcJson) => _$SunReserveInfoModelFromJson(srcJson); 45 + factory SunReserveInfoModel.fromJson(Map<String, dynamic> srcJson) =>
  46 + _$SunReserveInfoModelFromJson(srcJson);
42 47
43 Map<String, dynamic> toJson() => _$SunReserveInfoModelToJson(this); 48 Map<String, dynamic> toJson() => _$SunReserveInfoModelToJson(this);
44 -  
45 } 49 }
46 50
47 -  
48 @JsonSerializable() 51 @JsonSerializable()
49 - class RowModel extends Object {  
50 - 52 +class RowModel extends Object {
51 @JsonKey(name: 'id') 53 @JsonKey(name: 'id')
52 String id; 54 String id;
53 55
@@ -93,15 +95,34 @@ part 'reserve_info_model.g.dart'; @@ -93,15 +95,34 @@ part 'reserve_info_model.g.dart';
93 @JsonKey(name: 'type') 95 @JsonKey(name: 'type')
94 String type; 96 String type;
95 97
  98 + @JsonKey(name: 'region_name')
  99 + String regionName;
  100 +
96 @JsonKey(name: 'name') 101 @JsonKey(name: 'name')
97 String name; 102 String name;
98 103
99 - RowModel(this.id,this.tableinfo,this.tid,this.rname,this.sex,this.phone,this.cusman,this.ddate,this.cdate,this.cusdem,this.status,this.action,this.isSetDdate,this.ddateSolt,this.type,this.name,);  
100 -  
101 - factory RowModel.fromJson(Map<String, dynamic> srcJson) => _$RowModelFromJson(srcJson); 104 + RowModel(
  105 + this.id,
  106 + this.tableinfo,
  107 + this.tid,
  108 + this.rname,
  109 + this.sex,
  110 + this.phone,
  111 + this.cusman,
  112 + this.ddate,
  113 + this.cdate,
  114 + this.cusdem,
  115 + this.status,
  116 + this.action,
  117 + this.isSetDdate,
  118 + this.ddateSolt,
  119 + this.type,
  120 + this.regionName,
  121 + this.name,
  122 + );
  123 +
  124 + factory RowModel.fromJson(Map<String, dynamic> srcJson) =>
  125 + _$RowModelFromJson(srcJson);
102 126
103 Map<String, dynamic> toJson() => _$RowModelToJson(this); 127 Map<String, dynamic> toJson() => _$RowModelToJson(this);
104 -  
105 } 128 }
106 -  
107 -  
@@ -56,6 +56,7 @@ RowModel _$RowModelFromJson(Map<String, dynamic> json) { @@ -56,6 +56,7 @@ RowModel _$RowModelFromJson(Map<String, dynamic> json) {
56 json['is_set_ddate'] as String, 56 json['is_set_ddate'] as String,
57 json['ddate_solt'] as String, 57 json['ddate_solt'] as String,
58 json['type'] as String, 58 json['type'] as String,
  59 + json['region_name'] as String,
59 json['name'] as String); 60 json['name'] as String);
60 } 61 }
61 62
@@ -75,5 +76,6 @@ Map<String, dynamic> _$RowModelToJson(RowModel instance) => <String, dynamic>{ @@ -75,5 +76,6 @@ Map<String, dynamic> _$RowModelToJson(RowModel instance) => <String, dynamic>{
75 'is_set_ddate': instance.isSetDdate, 76 'is_set_ddate': instance.isSetDdate,
76 'ddate_solt': instance.ddateSolt, 77 'ddate_solt': instance.ddateSolt,
77 'type': instance.type, 78 'type': instance.type,
  79 + 'region_name': instance.regionName,
78 'name': instance.name 80 'name': instance.name
79 }; 81 };
@@ -10,6 +10,7 @@ class User { @@ -10,6 +10,7 @@ class User {
10 String sellerid; //商户id 10 String sellerid; //商户id
11 String sellercode; //商户编号 11 String sellercode; //商户编号
12 String sellername; //商户名称 12 String sellername; //商户名称
  13 + String sellerimage; //商户图片
13 String sellerphone; //商户电话 14 String sellerphone; //商户电话
14 String sellerAddr; //商户地址 15 String sellerAddr; //商户地址
15 int scatter; //是否有散座 0无 1有 16 int scatter; //是否有散座 0无 1有
@@ -28,6 +29,7 @@ class User { @@ -28,6 +29,7 @@ class User {
28 this.sellerid, 29 this.sellerid,
29 this.sellercode, 30 this.sellercode,
30 this.sellername, 31 this.sellername,
  32 + this.sellerimage,
31 this.sellerphone, 33 this.sellerphone,
32 this.sellerAddr, 34 this.sellerAddr,
33 this.scatter, 35 this.scatter,
@@ -45,6 +47,6 @@ class User { @@ -45,6 +47,6 @@ class User {
45 47
46 @override 48 @override
47 String toString() { 49 String toString() {
48 - return 'User{openid: $openid, account: $account, role_name: $role_name, sellerid: $sellerid, sellercode: $sellercode, sellername: $sellername, sellerphone: $sellerphone, sellerAddr: $sellerAddr, scatter: $scatter, room: $room, cassette: $cassette, morning: $morning, noon: $noon, night: $night ,userphone:$userphone},token:$token}'; 50 + return 'User{openid: $openid, account: $account, role_name: $role_name, sellerid: $sellerid, sellercode: $sellercode, sellername: $sellername,sellerimage:$sellerimage, sellerphone: $sellerphone, sellerAddr: $sellerAddr, scatter: $scatter, room: $room, cassette: $cassette, morning: $morning, noon: $noon, night: $night ,userphone:$userphone},token:$token}';
49 } 51 }
50 } 52 }
@@ -14,6 +14,7 @@ User _$UserFromJson(Map<String, dynamic> json) { @@ -14,6 +14,7 @@ User _$UserFromJson(Map<String, dynamic> json) {
14 json['sellerid'] as String, 14 json['sellerid'] as String,
15 json['sellercode'] as String, 15 json['sellercode'] as String,
16 json['sellername'] as String, 16 json['sellername'] as String,
  17 + json['sellerimage'] as String,
17 json['sellerphone'] as String, 18 json['sellerphone'] as String,
18 json['sellerAddr'] as String, 19 json['sellerAddr'] as String,
19 json['scatter'] as int, 20 json['scatter'] as int,
@@ -33,6 +34,7 @@ Map<String, dynamic> _$UserToJson(User instance) => <String, dynamic>{ @@ -33,6 +34,7 @@ Map<String, dynamic> _$UserToJson(User instance) => <String, dynamic>{
33 'sellerid': instance.sellerid, 34 'sellerid': instance.sellerid,
34 'sellercode': instance.sellercode, 35 'sellercode': instance.sellercode,
35 'sellername': instance.sellername, 36 'sellername': instance.sellername,
  37 + 'sellerimage': instance.sellerimage,
36 'sellerphone': instance.sellerphone, 38 'sellerphone': instance.sellerphone,
37 'sellerAddr': instance.sellerAddr, 39 'sellerAddr': instance.sellerAddr,
38 'scatter': instance.scatter, 40 'scatter': instance.scatter,
@@ -500,16 +500,15 @@ class _EditReserverPageState extends State<EditReserverPage> { @@ -500,16 +500,15 @@ class _EditReserverPageState extends State<EditReserverPage> {
500 500
501 if (detailModel.phoneController.text 501 if (detailModel.phoneController.text
502 .trim() 502 .trim()
503 - .length == 503 + .length >
504 0) { 504 0) {
505 - Utils.showToast('请填写电话');  
506 - return;  
507 - }  
508 - if (!Utils.phoneRegExp(  
509 - detailModel.phoneController.text)) {  
510 - Utils.showToast('手机号错误,请修改正确');  
511 - return; 505 + if (!Utils.phoneRegExp(
  506 + detailModel.phoneController.text)) {
  507 + Utils.showToast('手机号错误,请修改正确');
  508 + return;
  509 + }
512 } 510 }
  511 +
513 String sex = '1'; 512 String sex = '1';
514 for (var item in detailModel.sexList) { 513 for (var item in detailModel.sexList) {
515 if (item['select']) { 514 if (item['select']) {
@@ -66,7 +66,7 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> { @@ -66,7 +66,7 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> {
66 String sid = ""; //商户id 66 String sid = ""; //商户id
67 67
68 ScrollController _controller = ScrollController(); 68 ScrollController _controller = ScrollController();
69 - String nameStr; 69 + String nameStr = '';
70 70
71 FocusNode _cusdemNode = FocusNode(); 71 FocusNode _cusdemNode = FocusNode();
72 72
@@ -115,6 +115,8 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> { @@ -115,6 +115,8 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> {
115 for (var item in widget.detailEntity.tables) { 115 for (var item in widget.detailEntity.tables) {
116 item.selected = true; 116 item.selected = true;
117 } 117 }
  118 + nameStr = _notebookDetailChangeModel.nameController.text;
  119 + _addNameSuffix(nameStr, _nameSuffix());
118 Map<String, String> params = { 120 Map<String, String> params = {
119 "uid": Provider.of<UserModel>(context, listen: false).user.openid 121 "uid": Provider.of<UserModel>(context, listen: false).user.openid
120 }; 122 };
@@ -1949,6 +1951,8 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> { @@ -1949,6 +1951,8 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> {
1949 return; 1951 return;
1950 } 1952 }
1951 } 1953 }
  1954 + FocusScope.of(context)
  1955 + .requestFocus(FocusNode()); //点击空白处隐藏键盘
1952 1956
1953 SunReserveInfoModel _model = 1957 SunReserveInfoModel _model =
1954 _notebookDetailChangeModel.detailEntity.type == 1958 _notebookDetailChangeModel.detailEntity.type ==
@@ -1957,7 +1961,7 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> { @@ -1957,7 +1961,7 @@ class _NoteBookChangeFPageState extends State<NoteBookChangeFPage> {
1957 await _notebookDetailChangeModel 1961 await _notebookDetailChangeModel
1958 .updateOnlineReserveInfo(context) 1962 .updateOnlineReserveInfo(context)
1959 : await _notebookDetailChangeModel 1963 : await _notebookDetailChangeModel
1960 - .setReserveInfo(context); 1964 + .setReserveInfo(context, nameStr);
1961 if (ObjectUtil.isNotEmpty(_model.row) || 1965 if (ObjectUtil.isNotEmpty(_model.row) ||
1962 ObjectUtil.isNotEmpty(_model.row.id)) { 1966 ObjectUtil.isNotEmpty(_model.row.id)) {
1963 print('成功'); 1967 print('成功');
@@ -133,7 +133,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> { @@ -133,7 +133,7 @@ class NotebookDetailPageState extends State<NotebookDetailPage> {
133 133
134 ///初始化时间 半个小时 134 ///初始化时间 半个小时
135 _initTime(int dateSolt) { 135 _initTime(int dateSolt) {
136 - ddateHm = detailEntity.ddateHm; 136 + ddateHm = detailEntity.ddateStr;
137 UserModel userModel = Provider.of<UserModel>(context, listen: false); 137 UserModel userModel = Provider.of<UserModel>(context, listen: false);
138 String str = ''; 138 String str = '';
139 if (dateSolt == 1) { 139 if (dateSolt == 1) {
This diff could not be displayed because it is too large.
@@ -34,13 +34,14 @@ class _BaseInfoPageState extends State<BaseInfoPage> { @@ -34,13 +34,14 @@ class _BaseInfoPageState extends State<BaseInfoPage> {
34 TextEditingController _nameController = TextEditingController(); 34 TextEditingController _nameController = TextEditingController();
35 TextEditingController _phoneController = TextEditingController(); 35 TextEditingController _phoneController = TextEditingController();
36 TextEditingController _positionController = TextEditingController(); 36 TextEditingController _positionController = TextEditingController();
37 - 37 + TextEditingController _wechatController = TextEditingController();
38 FocusNode _nameFocusNode = FocusNode(); 38 FocusNode _nameFocusNode = FocusNode();
39 FocusNode _phoneFocusNode = FocusNode(); 39 FocusNode _phoneFocusNode = FocusNode();
40 FocusNode _positionFocusNode = FocusNode(); 40 FocusNode _positionFocusNode = FocusNode();
  41 + FocusNode _wechatFocusNode = FocusNode();
41 42
42 final picker = ImagePicker(); 43 final picker = ImagePicker();
43 - 44 +
44 UploadImageProvider _uploadImageProvider; 45 UploadImageProvider _uploadImageProvider;
45 BaseIndoProvider _baseIndoProvider; 46 BaseIndoProvider _baseIndoProvider;
46 47
@@ -74,6 +75,7 @@ class _BaseInfoPageState extends State<BaseInfoPage> { @@ -74,6 +75,7 @@ class _BaseInfoPageState extends State<BaseInfoPage> {
74 _uploadImageProvider.erweima.qiniuUrl = 75 _uploadImageProvider.erweima.qiniuUrl =
75 _baseIndoProvider.baseInfoSunModel.qrcode; 76 _baseIndoProvider.baseInfoSunModel.qrcode;
76 _phoneController.text = _baseIndoProvider.baseInfoSunModel.phone; 77 _phoneController.text = _baseIndoProvider.baseInfoSunModel.phone;
  78 + _wechatController.text = _baseIndoProvider.baseInfoSunModel.wechat;
77 _positionController.text = _baseIndoProvider.baseInfoSunModel.position; 79 _positionController.text = _baseIndoProvider.baseInfoSunModel.position;
78 _uploadImageProvider.imgSizeErweima = 64; 80 _uploadImageProvider.imgSizeErweima = 64;
79 // setState(() {}); 81 // setState(() {});
@@ -112,6 +114,9 @@ class _BaseInfoPageState extends State<BaseInfoPage> { @@ -112,6 +114,9 @@ class _BaseInfoPageState extends State<BaseInfoPage> {
112 } else { 114 } else {
113 params['phone'] = _phoneController.text.trim(); 115 params['phone'] = _phoneController.text.trim();
114 } 116 }
  117 + if (_wechatController.text.trim().length > 0) {
  118 + params['wechat'] = _wechatController.text;
  119 + }
115 if (_uploadImageProvider.erweima.qiniuUrl != null && 120 if (_uploadImageProvider.erweima.qiniuUrl != null &&
116 _uploadImageProvider.erweima.qiniuUrl != '') { 121 _uploadImageProvider.erweima.qiniuUrl != '') {
117 params['qrcode'] = _uploadImageProvider.erweima.qiniuUrl; 122 params['qrcode'] = _uploadImageProvider.erweima.qiniuUrl;
@@ -383,91 +388,108 @@ class _BaseInfoPageState extends State<BaseInfoPage> { @@ -383,91 +388,108 @@ class _BaseInfoPageState extends State<BaseInfoPage> {
383 onTap: () { 388 onTap: () {
384 FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘 389 FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
385 }, 390 },
386 - child: Column(children: [  
387 - Expanded(  
388 - child: SingleChildScrollView(  
389 - controller: _scrollController,  
390 - physics: BouncingScrollPhysics(),  
391 - child: Column(  
392 - children: [  
393 - _imageWidget('头像', _uploadImageProvider.touxiang,  
394 - _uploadImageProvider.imgSizeTouxiang, 64),  
395 - VEmptyView(30),  
396 - Container(  
397 - height: ScreenUtil().setWidth(2),  
398 - color: MyColours.color_efefef,  
399 - margin: EdgeInsets.only(  
400 - left: ScreenUtil().setWidth(108 * 2),  
401 - right: ScreenUtil().setWidth(40)),  
402 - ),  
403 - VEmptyView(10),  
404 - Padding(  
405 - padding: EdgeInsets.symmetric(  
406 - horizontal: ScreenUtil().setWidth(40), 391 + child: Container(
  392 + color: MyColours.color_ffffff,
  393 + child: Column(children: [
  394 + Expanded(
  395 + child: SingleChildScrollView(
  396 + controller: _scrollController,
  397 + physics: BouncingScrollPhysics(),
  398 + child: Column(
  399 + children: [
  400 + _imageWidget(
  401 + '头像',
  402 + _uploadImageProvider.touxiang,
  403 + _uploadImageProvider.imgSizeTouxiang,
  404 + 64),
  405 + VEmptyView(30),
  406 + Container(
  407 + height: ScreenUtil().setWidth(2),
  408 + color: MyColours.color_efefef,
  409 + margin: EdgeInsets.only(
  410 + left: ScreenUtil().setWidth(108 * 2),
  411 + right: ScreenUtil().setWidth(40)),
407 ), 412 ),
408 - child: _textfield('姓名', '请填写您的姓名',  
409 - _nameController, _nameFocusNode)),  
410 - VEmptyView(10),  
411 - Container(  
412 - height: ScreenUtil().setWidth(2),  
413 - color: MyColours.color_efefef,  
414 - margin: EdgeInsets.only(  
415 - left: ScreenUtil().setWidth(108 * 2),  
416 - right: ScreenUtil().setWidth(40)),  
417 - ),  
418 - VEmptyView(10),  
419 - Padding(  
420 - padding: EdgeInsets.symmetric(  
421 - horizontal: ScreenUtil().setWidth(40), 413 + VEmptyView(10),
  414 + Padding(
  415 + padding: EdgeInsets.symmetric(
  416 + horizontal: ScreenUtil().setWidth(40),
  417 + ),
  418 + child: _textfield('姓名', '请填写您的姓名',
  419 + _nameController, _nameFocusNode)),
  420 + VEmptyView(10),
  421 + Container(
  422 + height: ScreenUtil().setWidth(2),
  423 + color: MyColours.color_efefef,
  424 + margin: EdgeInsets.only(
  425 + left: ScreenUtil().setWidth(108 * 2),
  426 + right: ScreenUtil().setWidth(40)),
422 ), 427 ),
423 - child: _textfield('电话', '请填写您的联系电话',  
424 - _phoneController, _phoneFocusNode)),  
425 - VEmptyView(10),  
426 - Container(  
427 - height: ScreenUtil().setWidth(2),  
428 - color: MyColours.color_efefef,  
429 - margin: EdgeInsets.only(  
430 - left: ScreenUtil().setWidth(108 * 2),  
431 - right: ScreenUtil().setWidth(40)),  
432 - ),  
433 - VEmptyView(10),  
434 - Padding(  
435 - padding: EdgeInsets.symmetric(  
436 - horizontal: ScreenUtil().setWidth(40), 428 + VEmptyView(10),
  429 + Padding(
  430 + padding: EdgeInsets.symmetric(
  431 + horizontal: ScreenUtil().setWidth(40),
  432 + ),
  433 + child: _textfield('电话', '请填写您的联系电话',
  434 + _phoneController, _phoneFocusNode)),
  435 + VEmptyView(10),
  436 + Container(
  437 + height: ScreenUtil().setWidth(2),
  438 + color: MyColours.color_efefef,
  439 + margin: EdgeInsets.only(
  440 + left: ScreenUtil().setWidth(108 * 2),
  441 + right: ScreenUtil().setWidth(40)),
437 ), 442 ),
438 - child: _textfield('职位', '请填写您在餐厅中担任的职位',  
439 - _positionController, _positionFocusNode)),  
440 - VEmptyView(10),  
441 - Container(  
442 - height: ScreenUtil().setWidth(2),  
443 - color: MyColours.color_efefef,  
444 - margin: EdgeInsets.only(  
445 - left: ScreenUtil().setWidth(108 * 2),  
446 - right: ScreenUtil().setWidth(40)),  
447 - ),  
448 - VEmptyView(40),  
449 - _imageWidget('微信二维码', _uploadImageProvider.erweima,  
450 - _uploadImageProvider.imgSizeErweima, 0),  
451 - VEmptyView(30),  
452 - ],  
453 - )),  
454 - ),  
455 - VEmptyView(20),  
456 - Padding(  
457 - padding: EdgeInsets.fromLTRB(ScreenUtil().setWidth(40), 0,  
458 - ScreenUtil().setWidth(40), ScreenUtil().setWidth(40)),  
459 - child: RoundButton(  
460 - onPressed: () {  
461 - //接口  
462 - _setCustomerActivityBaseinfo();  
463 - },  
464 - text: '保存',  
465 - fontSize: 34,  
466 - isBold: false,  
467 - height: ScreenUtil().setWidth(80),  
468 - width: double.infinity,  
469 - radius: ScreenUtil().setWidth(10),  
470 - ))  
471 - ])))); 443 + VEmptyView(10),
  444 + Padding(
  445 + padding: EdgeInsets.symmetric(
  446 + horizontal: ScreenUtil().setWidth(40),
  447 + ),
  448 + child: _textfield(
  449 + '职位',
  450 + '请填写您在餐厅中担任的职位',
  451 + _positionController,
  452 + _positionFocusNode)),
  453 + VEmptyView(10),
  454 + Container(
  455 + height: ScreenUtil().setWidth(2),
  456 + color: MyColours.color_efefef,
  457 + margin: EdgeInsets.only(
  458 + left: ScreenUtil().setWidth(108 * 2),
  459 + right: ScreenUtil().setWidth(40)),
  460 + ),
  461 + VEmptyView(40),
  462 + // _imageWidget('微信二维码', _uploadImageProvider.erweima,
  463 + // _uploadImageProvider.imgSizeErweima, 0),
  464 + Padding(
  465 + padding: EdgeInsets.symmetric(
  466 + horizontal: ScreenUtil().setWidth(40),
  467 + ),
  468 + child: _textfield('微信号', '请填写您的微信号',
  469 + _wechatController, _wechatFocusNode)),
  470 + VEmptyView(30),
  471 + ],
  472 + )),
  473 + ),
  474 + VEmptyView(20),
  475 + Padding(
  476 + padding: EdgeInsets.fromLTRB(
  477 + ScreenUtil().setWidth(40),
  478 + 0,
  479 + ScreenUtil().setWidth(40),
  480 + ScreenUtil().setWidth(40)),
  481 + child: RoundButton(
  482 + onPressed: () {
  483 + //接口
  484 + _setCustomerActivityBaseinfo();
  485 + },
  486 + text: '保存',
  487 + fontSize: 34,
  488 + isBold: false,
  489 + height: ScreenUtil().setWidth(80),
  490 + width: double.infinity,
  491 + radius: ScreenUtil().setWidth(10),
  492 + ))
  493 + ])))));
472 } 494 }
473 } 495 }
@@ -511,13 +511,13 @@ class TableManagerPageState extends State<TableManagerPage> { @@ -511,13 +511,13 @@ class TableManagerPageState extends State<TableManagerPage> {
511 bus.emit("refresh_tablemanager"); //刷新当前页面 511 bus.emit("refresh_tablemanager"); //刷新当前页面
512 bus.emit("refresh_book_list"); //刷新已预订列表 512 bus.emit("refresh_book_list"); //刷新已预订列表
513 //进入订座详情页面 513 //进入订座详情页面
514 - NavigatorUtil.goNotebookDetailPage(  
515 - context,  
516 - _model.row.id,  
517 - Provider.of<UserModel>(context, listen: false)  
518 - .user  
519 - .openid,  
520 - ); 514 + // NavigatorUtil.goNotebookDetailPage(
  515 + // context,
  516 + // _model.row.id,
  517 + // Provider.of<UserModel>(context, listen: false)
  518 + // .user
  519 + // .openid,
  520 + // );
521 // String ddate_solt = ''; 521 // String ddate_solt = '';
522 // if (_model.row.isSetDdate == '1') { 522 // if (_model.row.isSetDdate == '1') {
523 // String createtime = 523 // String createtime =
@@ -28,6 +28,7 @@ class CouponProvider with ChangeNotifier { @@ -28,6 +28,7 @@ class CouponProvider with ChangeNotifier {
28 List<CouponSunModel> couponListHistory = []; //优惠券历史列表 28 List<CouponSunModel> couponListHistory = []; //优惠券历史列表
29 List<CouponSunModel> couponList = []; //优惠券列表 29 List<CouponSunModel> couponList = []; //优惠券列表
30 List<CouponSunModel> couponListSelect = []; //优惠券选择列表 30 List<CouponSunModel> couponListSelect = []; //优惠券选择列表
  31 + int index = 0; //选中的优惠券index
31 32
32 CouponProvider() { 33 CouponProvider() {
33 // for (int i = 0; i < 20; i++) { 34 // for (int i = 0; i < 20; i++) {
@@ -250,7 +251,7 @@ class CouponProvider with ChangeNotifier { @@ -250,7 +251,7 @@ class CouponProvider with ChangeNotifier {
250 return couponListHistory; 251 return couponListHistory;
251 } 252 }
252 253
253 - ///客户经理获取所创建活动列表(选择优惠券) 254 + ///客户经理获取所创建活动列表(选择优惠券)
254 Future<List<CouponSunModel>> getCustomerSelectActivityNew( 255 Future<List<CouponSunModel>> getCustomerSelectActivityNew(
255 BuildContext context, Map<String, String> params, 256 BuildContext context, Map<String, String> params,
256 {isShowLoading = true}) async { 257 {isShowLoading = true}) async {
@@ -285,28 +286,28 @@ class CouponProvider with ChangeNotifier { @@ -285,28 +286,28 @@ class CouponProvider with ChangeNotifier {
285 pageStateSelect = PageState.Success; 286 pageStateSelect = PageState.Success;
286 } 287 }
287 couponListSelect = CouponModel.fromJson(baseResp.responseData).data; 288 couponListSelect = CouponModel.fromJson(baseResp.responseData).data;
288 - if (hasModify) {  
289 - //已经绑定  
290 - List<CouponSunModel> temp = [];  
291 - for (int i = 0; i < couponListSelect.length; i++) {  
292 - for (int j = 0; j < coupons.length; j++) {  
293 - if (couponListSelect[i].id == coupons[j]) {  
294 - temp.add(couponListSelect[i]);  
295 - }  
296 - }  
297 - }  
298 - couponListSelect = temp;  
299 - } else {  
300 - for (int i = 0; i < couponListSelect.length; i++) {  
301 - for (int j = 0; j < coupons.length; j++) {  
302 - if (couponListSelect[i].id == coupons[j]) {  
303 - couponListSelect[i].isCheck = true;  
304 - }  
305 - }  
306 - }  
307 - } 289 + // if (hasModify) {
  290 + // //已经绑定
  291 + // List<CouponSunModel> temp = [];
  292 + // for (int i = 0; i < couponListSelect.length; i++) {
  293 + // for (int j = 0; j < coupons.length; j++) {
  294 + // if (couponListSelect[i].id == coupons[j]) {
  295 + // temp.add(couponListSelect[i]);
  296 + // }
  297 + // }
  298 + // }
  299 + // couponListSelect = temp;
  300 + // } else {
  301 + // for (int i = 0; i < couponListSelect.length; i++) {
  302 + // for (int j = 0; j < coupons.length; j++) {
  303 + // if (couponListSelect[i].id == coupons[j]) {
  304 + // couponListSelect[i].isCheck = true;
  305 + // }
  306 + // }
  307 + // }
  308 + // }
308 309
309 - getCheckValue(); 310 + // getCheckValue();
310 notifyListeners(); 311 notifyListeners();
311 } else { 312 } else {
312 pageStateSelect = PageState.ConnectivityError; 313 pageStateSelect = PageState.ConnectivityError;
@@ -454,10 +455,15 @@ class CouponProvider with ChangeNotifier { @@ -454,10 +455,15 @@ class CouponProvider with ChangeNotifier {
454 if (baseResp.data == null) { 455 if (baseResp.data == null) {
455 hasModify = false; 456 hasModify = false;
456 } else { 457 } else {
457 - couponListSelect = CouponModel.fromJson(baseResp.responseData).data; 458 + List<CouponSunModel> coupon =
  459 + CouponModel.fromJson(baseResp.responseData).data;
458 for (int i = 0; i < couponListSelect.length; i++) { 460 for (int i = 0; i < couponListSelect.length; i++) {
459 - coupons.add(couponListSelect[i].id); 461 + // coupons.add(couponListSelect[i].id);
  462 +
460 // couponsShow.add(couponTemp[i].id); 463 // couponsShow.add(couponTemp[i].id);
  464 + if (coupon[0].id == couponListSelect[i].id) {
  465 + index = i;
  466 + }
461 } 467 }
462 hasModify = true; 468 hasModify = true;
463 notifyListeners(); 469 notifyListeners();
@@ -561,7 +567,7 @@ class CouponProvider with ChangeNotifier { @@ -561,7 +567,7 @@ class CouponProvider with ChangeNotifier {
561 if (baseResp.code == Constant.status_success) { 567 if (baseResp.code == Constant.status_success) {
562 if (baseResp.data != null) { 568 if (baseResp.data != null) {
563 sunModel = AddForwardModel.fromJson(baseResp.responseData).data; 569 sunModel = AddForwardModel.fromJson(baseResp.responseData).data;
564 - 570 +
565 return true; 571 return true;
566 } else { 572 } else {
567 // Utils.showToast(baseResp.msg ?? "修改失败"); 573 // Utils.showToast(baseResp.msg ?? "修改失败");
@@ -73,6 +73,7 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -73,6 +73,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
73 if (detailEntity.rnameStr != '') { 73 if (detailEntity.rnameStr != '') {
74 nameController.text = detailEntity.rname; 74 nameController.text = detailEntity.rname;
75 } 75 }
  76 +
76 if (detailEntity.cusdem != '') { 77 if (detailEntity.cusdem != '') {
77 customController.text = detailEntity.cusdem; 78 customController.text = detailEntity.cusdem;
78 } 79 }
@@ -102,7 +103,7 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -102,7 +103,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
102 // getReserveList(context, needLoading: false); 103 // getReserveList(context, needLoading: false);
103 } 104 }
104 105
105 - _returnDate(DateTime day) { 106 + _returnDate(DateTime day) {
106 // String time = Utils.lunarCalendarHolidays(day); 107 // String time = Utils.lunarCalendarHolidays(day);
107 String date = _returnDayDateWeek(day); 108 String date = _returnDayDateWeek(day);
108 // date += ' ${time}'; 109 // date += ' ${time}';
@@ -531,7 +532,8 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -531,7 +532,8 @@ class NotebookDetailChangeModel with ChangeNotifier {
531 } 532 }
532 533
533 ///录入更改内部预订 534 ///录入更改内部预订
534 - Future<SunReserveInfoModel> setReserveInfo(BuildContext context) async { 535 + Future<SunReserveInfoModel> setReserveInfo(
  536 + BuildContext context, String nameStr) async {
535 UserModel userModel = Provider.of<UserModel>(context, listen: false); 537 UserModel userModel = Provider.of<UserModel>(context, listen: false);
536 538
537 // String tempTime; 539 // String tempTime;
@@ -621,7 +623,7 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -621,7 +623,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
621 if (detailEntity.id.isNotEmpty && detailEntity.id != "-1") { 623 if (detailEntity.id.isNotEmpty && detailEntity.id != "-1") {
622 params['rid'] = detailEntity.id; 624 params['rid'] = detailEntity.id;
623 } 625 }
624 - if (nameController.text.trim().length > 0) { 626 + if (nameStr.trim().length > 0) {
625 String sex = '1'; 627 String sex = '1';
626 for (var item in sexList) { 628 for (var item in sexList) {
627 if (item['select']) { 629 if (item['select']) {
@@ -629,7 +631,7 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -629,7 +631,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
629 } 631 }
630 } 632 }
631 633
632 - params['rname'] = nameController.text; //预订人姓名 634 + params['rname'] = nameStr; //预订人姓名
633 params['sex'] = sex; //预订人性别:1:男 2:女 635 params['sex'] = sex; //预订人性别:1:男 2:女
634 } 636 }
635 if (phoneController.text.trim().length > 0) { 637 if (phoneController.text.trim().length > 0) {
@@ -224,7 +224,7 @@ class NotebookDetailModel extends ChangeNotifier { @@ -224,7 +224,7 @@ class NotebookDetailModel extends ChangeNotifier {
224 if (name != null) { 224 if (name != null) {
225 params['rname'] = name; 225 params['rname'] = name;
226 } 226 }
227 - if (phone != null) { 227 + if (phone != null && phone != '') {
228 params['phone'] = phone; 228 params['phone'] = phone;
229 } 229 }
230 bool sucess = 230 bool sucess =
@@ -60,6 +60,7 @@ class UserModel with ChangeNotifier { @@ -60,6 +60,7 @@ class UserModel with ChangeNotifier {
60 "account": user['account'], 60 "account": user['account'],
61 "role_name": user['role_name'], 61 "role_name": user['role_name'],
62 "sellerid": seller['id'], 62 "sellerid": seller['id'],
  63 + "sellerimage": seller['seller_image'],
63 "sellercode": params['seller_code'], 64 "sellercode": params['seller_code'],
64 "sellername": seller['sellername'], 65 "sellername": seller['sellername'],
65 "sellerphone": seller['seller_tel'], 66 "sellerphone": seller['seller_tel'],
@@ -28,466 +28,474 @@ import 'package:webview_flutter/webview_flutter.dart'; @@ -28,466 +28,474 @@ import 'package:webview_flutter/webview_flutter.dart';
28 import '../app.dart'; 28 import '../app.dart';
29 29
30 typedef BookTimeSetCallback = void Function(bool needChange); 30 typedef BookTimeSetCallback = void Function(bool needChange);
31 -const int START_YEAR = 1901;  
32 -const int END_YEAR = 2050;  
33 -const List gLunarHolDay = [  
34 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
35 - 0X77, //1901  
36 31
37 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,  
38 - 0X78, //1902 32 +class Utils {
  33 + //人数
  34 + static List<String> getPersonNumList() {
  35 + List<String> personNumList = [];
  36 + for (int i = 1; i < 31; i++) {
  37 + personNumList.add(i.toString());
  38 + }
  39 + personNumList.add('30以上');
  40 + return personNumList;
  41 + }
  42 +
  43 + static String getLunarSpecialDate(DateTime dateTime) {
  44 + String _day = '';
  45 + int iYear = dateTime.year;
  46 + int iMonth = dateTime.month;
  47 + int iDay = dateTime.day;
  48 + const List gLunarHolDay = [
  49 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  50 + 0X77, //1901
39 51
40 - 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,  
41 - 0X78, //1903 52 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,
  53 + 0X78, //1902
42 54
43 - 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,  
44 - 0X87, //1904 55 + 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,
  56 + 0X78, //1903
45 57
46 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
47 - 0X77, //1905 58 + 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,
  59 + 0X87, //1904
48 60
49 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
50 - 0X78, //1906 61 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  62 + 0X77, //1905
51 63
52 - 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,  
53 - 0X78, //1907 64 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  65 + 0X78, //1906
54 66
55 - 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
56 - 0X87, //1908 67 + 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,
  68 + 0X78, //1907
57 69
58 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
59 - 0X77, //1909 70 + 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  71 + 0X87, //1908
60 72
61 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
62 - 0X78, //1910 73 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  74 + 0X77, //1909
63 75
64 - 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,  
65 - 0X78, //1911 76 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  77 + 0X78, //1910
66 78
67 - 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
68 - 0X87, //1912 79 + 0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78,
  80 + 0X78, //1911
69 81
70 - 0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
71 - 0X77, //1913 82 + 0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  83 + 0X87, //1912
72 84
73 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
74 - 0X78, //1914 85 + 0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  86 + 0X77, //1913
75 87
76 - 0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,  
77 - 0X78, //1915 88 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  89 + 0X78, //1914
78 90
79 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
80 - 0X87, //1916 91 + 0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,
  92 + 0X78, //1915
81 93
82 - 0X95, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
83 - 0X87, //1917 94 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  95 + 0X87, //1916
84 96
85 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
86 - 0X77, //1918 97 + 0X95, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  98 + 0X87, //1917
87 99
88 - 0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,  
89 - 0X78, //1919 100 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  101 + 0X77, //1918
90 102
91 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
92 - 0X87, //1920 103 + 0X96, 0XA5, 0X97, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,
  104 + 0X78, //1919
93 105
94 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
95 - 0X87, //1921 106 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  107 + 0X87, //1920
96 108
97 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
98 - 0X77, //1922 109 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  110 + 0X87, //1921
99 111
100 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,  
101 - 0X78, //1923 112 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  113 + 0X77, //1922
102 114
103 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
104 - 0X87, //1924 115 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X69, 0X69, 0X78,
  116 + 0X78, //1923
105 117
106 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
107 - 0X87, //1925 118 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  119 + 0X87, //1924
108 120
109 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
110 - 0X77, //1926 121 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  122 + 0X87, //1925
111 123
112 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,  
113 - 0X78, //1927 124 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  125 + 0X77, //1926
114 126
115 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
116 - 0X87, //1928 127 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,
  128 + 0X78, //1927
117 129
118 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
119 - 0X87, //1929 130 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  131 + 0X87, //1928
120 132
121 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
122 - 0X77, //1930 133 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  134 + 0X87, //1929
123 135
124 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,  
125 - 0X78, //1931 136 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  137 + 0X77, //1930
126 138
127 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
128 - 0X87, //1932 139 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78,
  140 + 0X78, //1931
129 141
130 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
131 - 0X87, //1933 142 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  143 + 0X87, //1932
132 144
133 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
134 - 0X77, //1934 145 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  146 + 0X87, //1933
135 147
136 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
137 - 0X78, //1935 148 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  149 + 0X77, //1934
138 150
139 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
140 - 0X87, //1936 151 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  152 + 0X78, //1935
141 153
142 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
143 - 0X87, //1937 154 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  155 + 0X87, //1936
144 156
145 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
146 - 0X77, //1938 157 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  158 + 0X87, //1937
147 159
148 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
149 - 0X78, //1939 160 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  161 + 0X77, //1938
150 162
151 - 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
152 - 0X87, //1940 163 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  164 + 0X78, //1939
153 165
154 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
155 - 0X87, //1941 166 + 0X96, 0XA5, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  167 + 0X87, //1940
156 168
157 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
158 - 0X77, //1942 169 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  170 + 0X87, //1941
159 171
160 - 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
161 - 0X78, //1943 172 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  173 + 0X77, //1942
162 174
163 - 0X96, 0XA5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
164 - 0X87, //1944 175 + 0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  176 + 0X78, //1943
165 177
166 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
167 - 0X87, //1945 178 + 0X96, 0XA5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  179 + 0X87, //1944
168 180
169 - 0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
170 - 0X77, //1946 181 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  182 + 0X87, //1945
171 183
172 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
173 - 0X78, //1947 184 + 0X95, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  185 + 0X77, //1946
174 186
175 - 0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
176 - 0X87, //1948 187 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  188 + 0X78, //1947
177 189
178 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X79, 0X77,  
179 - 0X87, //1949 190 + 0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  191 + 0X87, //1948
180 192
181 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
182 - 0X77, //1950 193 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X79, 0X77,
  194 + 0X87, //1949
183 195
184 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,  
185 - 0X78, //1951 196 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  197 + 0X77, //1950
186 198
187 - 0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
188 - 0X87, //1952 199 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78,
  200 + 0X78, //1951
189 201
190 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
191 - 0X87, //1953 202 + 0X96, 0XA5, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  203 + 0X87, //1952
192 204
193 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X68, 0X78,  
194 - 0X87, //1954 205 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  206 + 0X87, //1953
195 207
196 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
197 - 0X77, //1955 208 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X68, 0X78,
  209 + 0X87, //1954
198 210
199 - 0X96, 0XA5, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
200 - 0X87, //1956 211 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  212 + 0X77, //1955
201 213
202 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
203 - 0X87, //1957 214 + 0X96, 0XA5, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  215 + 0X87, //1956
204 216
205 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
206 - 0X87, //1958 217 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  218 + 0X87, //1957
207 219
208 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
209 - 0X77, //1959 220 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  221 + 0X87, //1958
210 222
211 - 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
212 - 0X87, //1960 223 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  224 + 0X77, //1959
213 225
214 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
215 - 0X87, //1961 226 + 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  227 + 0X87, //1960
216 228
217 - 0X96, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
218 - 0X87, //1962 229 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  230 + 0X87, //1961
219 231
220 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
221 - 0X77, //1963 232 + 0X96, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  233 + 0X87, //1962
222 234
223 - 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
224 - 0X87, //1964 235 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  236 + 0X77, //1963
225 237
226 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
227 - 0X87, //1965 238 + 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  239 + 0X87, //1964
228 240
229 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
230 - 0X87, //1966 241 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  242 + 0X87, //1965
231 243
232 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
233 - 0X77, //1967 244 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  245 + 0X87, //1966
234 246
235 - 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
236 - 0X87, //1968 247 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  248 + 0X77, //1967
237 249
238 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
239 - 0X87, //1969 250 + 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  251 + 0X87, //1968
240 252
241 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
242 - 0X87, //1970 253 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  254 + 0X87, //1969
243 255
244 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,  
245 - 0X77, //1971 256 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  257 + 0X87, //1970
246 258
247 - 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
248 - 0X87, //1972 259 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78,
  260 + 0X77, //1971
249 261
250 - 0XA5, 0XB5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
251 - 0X87, //1973 262 + 0X96, 0XA4, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  263 + 0X87, //1972
252 264
253 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
254 - 0X87, //1974 265 + 0XA5, 0XB5, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  266 + 0X87, //1973
255 267
256 - 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
257 - 0X77, //1975 268 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  269 + 0X87, //1974
258 270
259 - 0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X89, 0X88, 0X78, 0X87,  
260 - 0X87, //1976 271 + 0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  272 + 0X77, //1975
261 273
262 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
263 - 0X87, //1977 274 + 0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X89, 0X88, 0X78, 0X87,
  275 + 0X87, //1976
264 276
265 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,  
266 - 0X87, //1978 277 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  278 + 0X87, //1977
267 279
268 - 0X96, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
269 - 0X77, //1979 280 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,
  281 + 0X87, //1978
270 282
271 - 0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
272 - 0X87, //1980 283 + 0X96, 0XB4, 0X96, 0XA6, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  284 + 0X77, //1979
273 285
274 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X77,  
275 - 0X87, //1981 286 + 0X96, 0XA4, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  287 + 0X87, //1980
276 288
277 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
278 - 0X87, //1982 289 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X77,
  290 + 0X87, //1981
279 291
280 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,  
281 - 0X77, //1983 292 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  293 + 0X87, //1982
282 294
283 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
284 - 0X87, //1984 295 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X78, 0X79, 0X78, 0X69, 0X78,
  296 + 0X77, //1983
285 297
286 - 0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
287 - 0X87, //1985 298 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  299 + 0X87, //1984
288 300
289 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
290 - 0X87, //1986 301 + 0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  302 + 0X87, //1985
291 303
292 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X69, 0X78,  
293 - 0X87, //1987 304 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  305 + 0X87, //1986
294 306
295 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
296 - 0X86, //1988 307 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X79, 0X78, 0X69, 0X78,
  308 + 0X87, //1987
297 309
298 - 0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
299 - 0X87, //1989 310 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  311 + 0X86, //1988
300 312
301 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,  
302 - 0X87, //1990 313 + 0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  314 + 0X87, //1989
303 315
304 - 0X95, 0XB4, 0X96, 0XA5, 0X86, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
305 - 0X87, //1991 316 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,
  317 + 0X87, //1990
306 318
307 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
308 - 0X86, //1992 319 + 0X95, 0XB4, 0X96, 0XA5, 0X86, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  320 + 0X87, //1991
309 321
310 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
311 - 0X87, //1993 322 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  323 + 0X86, //1992
312 324
313 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
314 - 0X87, //1994 325 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  326 + 0X87, //1993
315 327
316 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X76, 0X78, 0X69, 0X78,  
317 - 0X87, //1995 328 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  329 + 0X87, //1994
318 330
319 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
320 - 0X86, //1996 331 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X76, 0X78, 0X69, 0X78,
  332 + 0X87, //1995
321 333
322 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
323 - 0X87, //1997 334 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  335 + 0X86, //1996
324 336
325 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
326 - 0X87, //1998 337 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  338 + 0X87, //1997
327 339
328 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
329 - 0X87, //1999 340 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  341 + 0X87, //1998
330 342
331 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
332 - 0X86, //2000 343 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  344 + 0X87, //1999
333 345
334 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
335 - 0X87, //2001 346 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  347 + 0X86, //2000
336 348
337 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
338 - 0X87, //2002 349 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  350 + 0X87, //2001
339 351
340 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
341 - 0X87, //2003 352 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  353 + 0X87, //2002
342 354
343 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
344 - 0X86, //2004 355 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  356 + 0X87, //2003
345 357
346 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
347 - 0X87, //2005 358 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  359 + 0X86, //2004
348 360
349 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
350 - 0X87, //2006 361 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  362 + 0X87, //2005
351 363
352 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,  
353 - 0X87, //2007 364 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  365 + 0X87, //2006
354 366
355 - 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
356 - 0X86, //2008 367 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78,
  368 + 0X87, //2007
357 369
358 - 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
359 - 0X87, //2009 370 + 0X96, 0XB4, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  371 + 0X86, //2008
360 372
361 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
362 - 0X87, //2010 373 + 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  374 + 0X87, //2009
363 375
364 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,  
365 - 0X87, //2011 376 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  377 + 0X87, //2010
366 378
367 - 0X96, 0XB4, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
368 - 0X86, //2012 379 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78,
  380 + 0X87, //2011
369 381
370 - 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
371 - 0X87, //2013 382 + 0X96, 0XB4, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  383 + 0X86, //2012
372 384
373 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
374 - 0X87, //2014 385 + 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  386 + 0X87, //2013
375 387
376 - 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,  
377 - 0X87, //2015 388 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  389 + 0X87, //2014
378 390
379 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
380 - 0X86, //2016 391 + 0X95, 0XB4, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X77,
  392 + 0X87, //2015
381 393
382 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
383 - 0X87, //2017 394 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  395 + 0X86, //2016
384 396
385 - 0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
386 - 0X87, //2018 397 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  398 + 0X87, //2017
387 399
388 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,  
389 - 0X87, //2019 400 + 0XA5, 0XB4, 0XA6, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  401 + 0X87, //2018
390 402
391 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
392 - 0X86, //2020 403 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,
  404 + 0X87, //2019
393 405
394 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
395 - 0X86, //2021 406 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  407 + 0X86, //2020
396 408
397 - 0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,  
398 - 0X87, //2022 409 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  410 + 0X86, //2021
399 411
400 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,  
401 - 0X87, //2023 412 + 0XA5, 0XB4, 0XA5, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X88, 0X78, 0X87,
  413 + 0X87, //2022
402 414
403 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
404 - 0X96, //2024 415 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X79, 0X77,
  416 + 0X87, //2023
405 417
406 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
407 - 0X86, //2025 418 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  419 + 0X96, //2024
408 420
409 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
410 - 0X87, //2026 421 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  422 + 0X86, //2025
411 423
412 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
413 - 0X87, //2027 424 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  425 + 0X87, //2026
414 426
415 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
416 - 0X96, //2028 427 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  428 + 0X87, //2027
417 429
418 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
419 - 0X86, //2029 430 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  431 + 0X96, //2028
420 432
421 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
422 - 0X87, //2030 433 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  434 + 0X86, //2029
423 435
424 - 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,  
425 - 0X87, //2031 436 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  437 + 0X87, //2030
426 438
427 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
428 - 0X96, //2032 439 + 0XA5, 0XB4, 0X96, 0XA5, 0X96, 0X96, 0X88, 0X78, 0X78, 0X78, 0X87,
  440 + 0X87, //2031
429 441
430 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
431 - 0X86, //2033 442 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  443 + 0X96, //2032
432 444
433 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X78, 0X88, 0X78, 0X87,  
434 - 0X87, //2034 445 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  446 + 0X86, //2033
435 447
436 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
437 - 0X87, //2035 448 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X78, 0X88, 0X78, 0X87,
  449 + 0X87, //2034
438 450
439 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
440 - 0X96, //2036 451 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  452 + 0X87, //2035
441 453
442 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
443 - 0X86, //2037 454 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  455 + 0X96, //2036
444 456
445 - 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
446 - 0X87, //2038 457 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  458 + 0X86, //2037
447 459
448 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
449 - 0X87, //2039 460 + 0XA5, 0XB3, 0XA5, 0XA5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  461 + 0X87, //2038
450 462
451 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
452 - 0X96, //2040 463 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  464 + 0X87, //2039
453 465
454 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
455 - 0X86, //2041 466 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  467 + 0X96, //2040
456 468
457 - 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,  
458 - 0X87, //2042 469 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  470 + 0X86, //2041
459 471
460 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
461 - 0X87, //2043 472 + 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X88, 0X88, 0X88, 0X78, 0X87,
  473 + 0X87, //2042
462 474
463 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X88, 0X87,  
464 - 0X96, //2044 475 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  476 + 0X87, //2043
465 477
466 - 0XA5, 0XC3, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,  
467 - 0X86, //2045 478 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X88, 0X87,
  479 + 0X96, //2044
468 480
469 - 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,  
470 - 0X87, //2046 481 + 0XA5, 0XC3, 0XA5, 0XB4, 0XA5, 0XA6, 0X87, 0X88, 0X87, 0X78, 0X87,
  482 + 0X86, //2045
471 483
472 - 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,  
473 - 0X87, //2047 484 + 0XA5, 0XB3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X88, 0X78, 0X87,
  485 + 0X87, //2046
474 486
475 - 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA5, 0X97, 0X87, 0X87, 0X88, 0X86,  
476 - 0X96, //2048 487 + 0XA5, 0XB4, 0X96, 0XA5, 0XA6, 0X96, 0X88, 0X88, 0X78, 0X78, 0X87,
  488 + 0X87, //2047
477 489
478 - 0XA4, 0XC3, 0XA5, 0XA5, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,  
479 - 0X86, //2049 490 + 0X95, 0XB4, 0XA5, 0XB4, 0XA5, 0XA5, 0X97, 0X87, 0X87, 0X88, 0X86,
  491 + 0X96, //2048
480 492
481 - 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X78, 0X78, 0X87,  
482 - 0X87 //2050  
483 -]; 493 + 0XA4, 0XC3, 0XA5, 0XA5, 0XA5, 0XA6, 0X97, 0X87, 0X87, 0X78, 0X87,
  494 + 0X86, //2049
484 495
485 -class Utils {  
486 - static String getLunarSpecialDate(DateTime dateTime) {  
487 - String _day = '';  
488 - int iYear = dateTime.year;  
489 - int iMonth = dateTime.month;  
490 - int iDay = dateTime.day; 496 + 0XA5, 0XC3, 0XA5, 0XB5, 0XA6, 0XA6, 0X87, 0X88, 0X78, 0X78, 0X87,
  497 + 0X87 //2050
  498 + ];
491 List chineseDays = [ 499 List chineseDays = [
492 "小寒", 500 "小寒",
493 "大寒", 501 "大寒",
@@ -514,6 +522,8 @@ class Utils { @@ -514,6 +522,8 @@ class Utils {
514 "大雪", 522 "大雪",
515 "冬至" 523 "冬至"
516 ]; 524 ];
  525 + const int START_YEAR = 1901;
  526 + const int END_YEAR = 2050;
517 527
518 int array_index = (iYear - START_YEAR) * 12 + iMonth - 1; 528 int array_index = (iYear - START_YEAR) * 12 + iMonth - 1;
519 529