我有两个 DateTimeField ,用户将选择 Start Date 和 End Date ,我希望在它下面的另一个 TextFormField 上显示天数的差异。例如,如果我2020-11-15
在 DateFormField 上选择作为开始日期并2020-11-03
在 DateFormField 上选择作为结束日期,那么它应该自动显示12
在 TextFormField 的总天数上。下面是我的代码:
TextEditingController _controllerStartDate = TextEditingController();
TextEditingController _controllerEndDate = TextEditingController();
TextEditingController _controllerTotalDays = TextEditingController();
body: Container{
child: Form{
child:ListView(
children:<widget>[
Text("Start Date:",style: TextStyle(color: colorBlack,fontWeight: FontWeight.bold),),
Container(
height: 50,
padding: EdgeInsets.only(left: 20),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(5),
),
border: Border.all(color: Colors.black, width: 1),
),
child:DateTimeField(
format: format,
controller: _controllerStartDate,
decoration: InputDecoration(
labelStyle: TextStyle(color: Colors.black)),
onShowPicker: (context, currentValue) {
return showDatePicker(
context: context,
firstDate: DateTime(1900),
initialDate: currentValue ?? DateTime.now(),
lastDate: DateTime(2100));
},
)
),
SizedBox(height: 25.0),
Text("End Date:",style: TextStyle(color: colorBlack,fontWeight: FontWeight.bold),),
Container(
height: 50,
padding: EdgeInsets.only(left: 20),
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(5),
),
border: Border.all(color: Colors.black, width: 1),
),
child:DateTimeField(
format: format,
controller: _controllerEndDate,
decoration: InputDecoration(
labelStyle: TextStyle(color: Colors.black)),
onShowPicker: (context, currentValue) {
return showDatePicker(
context: context,
firstDate: DateTime(1900),
initialDate: currentValue ?? DateTime.now(),
lastDate: DateTime(2100));
},
)
),
SizedBox(height: 25.0),
TextFormField(
autovalidate: _autoValidate,
validator: validateLength,
style: style,
enabled: false,
keyboardType: TextInputType.text,
controller: _controllerTotalDays,
decoration: InputDecoration(
contentPadding: EdgeInsets.fromLTRB(20.0, 15.0, 20.0, 15.0),
labelStyle: new TextStyle(color: colorBlack),
hintStyle: new TextStyle(color: colorBlack),
enabledBorder: const OutlineInputBorder(
borderSide: const BorderSide(color: Colors.black),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.black),
),
),
)
]
)
}
}
从上面的代码中,我希望从两个 DateFormField 中选择的日期之间的某种运算符差异显示在 Textformfield 上,就像我上面给出的示例一样。