Flutter 可编程定时器
Flutter Programmable Timer
我想为我的学校项目构建婚礼应用程序。我无法构建可编程计时器。用户应将计时器设置为“10 周后”,计时器开始倒计时至 9 周、23 小时等。关于如何实现我的目标有什么建议吗?
完成此作业应遵循几个步骤:
- 您必须让用户一次选择一个日期and/or。
- 您必须计算剩余的字符串(x 年、x 月、x 天等)
- 显示给用户。
- 启动计时器,这将更新 UI。
//Timer
Timer.periodic(const Duration(seconds: 1), (timer) {
//every 1 second, the state will be updated
setState(() {});
});
//remainingTime calculator
//you have to put this string to a Text widget
String get _calculateRemainingTime{
Duration remainingDuration = widget.date.difference(DateTime.now());
if(remainingDuration.inSeconds <= 0){
return 'Time has come';
}
int remainingSeconds = remainingDuration.inSeconds % 60;
int remainingMinutes = remainingDuration.inMinutes % 60;
int remainingHours = remainingDuration.inHours % 24;
int remainingDays = remainingDuration.inDays;
int remainingMonths = remainingDays ~/ 30;
int remainingYears = remainingMonths ~/ 12;
remainingDays = remainingDays % 30;
remainingMonths = remainingMonths % 12;
return '${remainingYears != 0 ? remainingYears.toString() + ' years' : ''} ${remainingMonths != 0 ? remainingMonths.toString() + ' months' : ''} ${remainingDays != 0 ? remainingDays.toString() + ' days' : ''} ${remainingHours != 0 ? remainingHours.toString() + ' hours' : ''} ${remainingMinutes != 0 ? remainingMinutes.toString() + ' minutes' : ''} ${remainingSeconds != 0 ? remainingSeconds.toString() + ' seconds' : ''}';
}
我的 github 页面上有一个示例:Flutter Timer Example
如果您需要进一步的帮助,请告诉我。
我想为我的学校项目构建婚礼应用程序。我无法构建可编程计时器。用户应将计时器设置为“10 周后”,计时器开始倒计时至 9 周、23 小时等。关于如何实现我的目标有什么建议吗?
完成此作业应遵循几个步骤:
- 您必须让用户一次选择一个日期and/or。
- 您必须计算剩余的字符串(x 年、x 月、x 天等)
- 显示给用户。
- 启动计时器,这将更新 UI。
//Timer
Timer.periodic(const Duration(seconds: 1), (timer) {
//every 1 second, the state will be updated
setState(() {});
});
//remainingTime calculator
//you have to put this string to a Text widget
String get _calculateRemainingTime{
Duration remainingDuration = widget.date.difference(DateTime.now());
if(remainingDuration.inSeconds <= 0){
return 'Time has come';
}
int remainingSeconds = remainingDuration.inSeconds % 60;
int remainingMinutes = remainingDuration.inMinutes % 60;
int remainingHours = remainingDuration.inHours % 24;
int remainingDays = remainingDuration.inDays;
int remainingMonths = remainingDays ~/ 30;
int remainingYears = remainingMonths ~/ 12;
remainingDays = remainingDays % 30;
remainingMonths = remainingMonths % 12;
return '${remainingYears != 0 ? remainingYears.toString() + ' years' : ''} ${remainingMonths != 0 ? remainingMonths.toString() + ' months' : ''} ${remainingDays != 0 ? remainingDays.toString() + ' days' : ''} ${remainingHours != 0 ? remainingHours.toString() + ' hours' : ''} ${remainingMinutes != 0 ? remainingMinutes.toString() + ' minutes' : ''} ${remainingSeconds != 0 ? remainingSeconds.toString() + ' seconds' : ''}';
}
我的 github 页面上有一个示例:Flutter Timer Example
如果您需要进一步的帮助,请告诉我。