本帖最后由 ppgjx 于 2022-8-11 14:56 编辑
我现在有个需求,就是给你一个额定的天数比如150天,再给你一个任务数量,比如50次,要求在120天内把50次消耗完,但要是随机时间的,如果这个次数大于天数就要考虑一天做两次,这两次在一天的时间里也是必须是随机时间的,如何处理这个随机时间呢?主要是 他要求是这个任务分配应该是看似是正常的,比如两三天做一次,不能是那种到了150天,把50次都分配到一天去了,很头疼这个问题 ,我目前做的是 150 / 50 求出平均每三天做一次,然后每次都是在1-3这个区间加天数,但是如果是次数大于天数我就不知道咋办了,还有这个时间如代码我只是再原有的时间加一天,没有办法做到在一天的时间内随机抽取一个时间做 , 而且我这个代码 while (day >= ave )可能会导致次数做不完的问题
//天数
int day = 150;
//任务数量
int taskCount = 50;
//平均每次任务需要几天
int ave = day / taskCount;
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
//获取150天之前的时间
calendar.add(Calendar.DAY_OF_MONTH, -150);
//总天数要大于平均天数 否则可能会有负数的问题 还会导致最后一次任务时间超过今天的时间
while (day >= ave ){
//随机天数
int i = new Random().nextInt(ave) + 1;
//添加天数
calendar.add(Calendar.DAY_OF_MONTH, i);
//总天数减去
day = day - i;
//输出天数
System.out.println(DateUtil.date(calendar.getTime()));
}
|