首页 > 解决方案 > 检查列表中是否缺少日期?

问题描述

所以,我将所有日期存储在一个列表中,我想检查有多少日期不存在,这样我就可以获得出勤率。

我的代码:-

List<String> dates=[];//have some dates assigned to it

// now suppose user was absent on a date x and y then i want to calculate the attendance as:-
attendance=(present/total)*100;

标签: flutterdart

解决方案


  var firstDate=new DateTime(2021,01,04);
  var curDate=new DateTime.now();
  
  var days=curDate.difference(firstDate).inDays;
  print(days);
  
  List<String> allDates=List.generate(days,(index)=>firstDate.add(Duration(days:index)).toString().substring(0,10).replaceAll("-",".")).toList();
  


  List<String> userDates=[
    "2021.04.01",
    "2021.04.02",
    "2021.04.03",
    "2021.04.04",
    "2021.04.05",
    "2021.04.06",
  
  ];
  // non-user dates
  var      d=allDates.where((d)=>!userDates.contains(d)).toList();
  
 print(d);
  
 var attendance=(d.length/allDates.length)*100;
  print(attendance);

输出:[2021.01.04, 2021.01.05, 2021.01.06, 2021.01.07, 2021.01.08, 2021.01.09, 2021.01.10, 2021.01.11, 2021.01.12, 2021.01.13, 2021.01.13, 2021.01.13, 2021.01.1. ,2021.01.16,2021.01.17,2021.01.18,2021.01.19,2021.01.01.20,2021.01.21,2021.01.01.22,2021.01.01.01.01.01.01.01.01.01.01.01.01.01.01.01.01.24,2021.24,2021.01.01.01.01.01.01.01.0.10.1.19.1.1m,201.01.01.01.01.101.1.19.1.19.1.19.1.bhing .28, 2021.01.29, 2021.01.30, 2021.01.31, 2021.02.01, 2021.02.02, 2021.02.03, 2021.02.04, 2021.02.05, 2021.02.06, 202102.02.09,.07, 202102.02.09,.2.02 , 2021.02.10, 2021.02.11, 2021.02.12, 2021.02.13, 2021.02.14, 2021.02.15, 2021.02.16, 2021.02.17, 2021.02.18, 2021.02.19, 2021.02.20, 2021.02.21, 2021.02 .22, 2021.02.23, 2021.02.24, 2021.02.25, 2021.02.26, 2021.02.27, 2021.02.28, 2021.03.01, 2021.03.02, 2021.03.03, 202103.03.05,.0.202103.03.05,.. , 2021.03.07, 2021.03.08, 2021.03.09, 2021.03.10, 2021.03.11, 2021.03.12, 2021.03.13, 2021.03.14, 2021.03。15, 2021.03.16, 2021.03.17, 2021.03.18, 2021.03.19, 2021.03.20, 2021.03.21, 2021.03.22, 2021.03.23, 2021.03.24, 2021.03.26, 27, 20.3, 20.3 2021.03.28、2021.03.29、2021.03.30、2021.03.31、2021.04.07、2021.04.08]


推荐阅读