在 dart/flutter 中每月使用一次服务的逻辑

问题描述 投票:0回答:1

我有两个数据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
flutter algorithm dart logic
1个回答
0
投票

看起来就是你想要的

return usageCount > differenceInMonths ? true : false;

而不是

return differenceInMonths >= usageCount ? true : false;
© www.soinside.com 2019 - 2024. All rights reserved.