我有两个数据1)“使用次数”和2)“上次使用日期”,要求是查找用户是否每月使用过一次服务。如果用户已经每月使用一次服务,则返回值应为 false,否则应为 true。这是我在 dart 中的代码。但它不起作用
bool checkValidity( int usageCount,DateTime lastUsed){
int differenceInMonths =
(lastUsed.difference(DateTime.now()).inDays / 30).floor();
print('no of usage : $usageCount, past months : $differenceInMonths');
return differenceInMonths >= usageCount ? true : false;
}
void main() {
print(checkValidity(1,DateTime.now().add(Duration(days:28))));
print(checkValidity(1,DateTime.now().add(Duration(days:29))));
print(checkValidity(1,DateTime.now().add(Duration(days:30))));
print(checkValidity(1,DateTime.now().add(Duration(days:31))));
print(checkValidity(1,DateTime.now().add(Duration(days:60))));
print(checkValidity(2,DateTime.now().add(Duration(days:59))));
print(checkValidity(2,DateTime.now().add(Duration(days:60))));
print(checkValidity(2,DateTime.now().add(Duration(days:61))));
}
期望的输出应该是
no of usage : 1, past months : 0
true
no of usage : 1, past months : 0
true
no of usage : 1, past months : 1
false
no of usage : 1, past months : 1
false
no of usage : 1, past months : 2
true (but this is coming as false using current code)
no of usage : 2, past months : 1
true
no of usage : 2, past months : 2
false
no of usage : 2, past months : 2
false
看起来就是你想要的
return usageCount > differenceInMonths ? true : false;
而不是
return differenceInMonths >= usageCount ? true : false;