我想使用rand::StdRng
从一个时间间隔中生成一个随机日期。目前我可以像这样生成随机日期:
pub fn random_date(rng: &mut StdRng) -> Date {
rng.sample(Standard)
}
字符串
但是这种方法生成的任何日期都不在给定的区间内。如何随机生成区间内的日期?比如,我想得到一个从2000到2010的日期。
我用time::Date
我想使用rand::StdRng
从一个时间间隔中生成一个随机日期。目前我可以像这样生成随机日期:
pub fn random_date(rng: &mut StdRng) -> Date {
rng.sample(Standard)
}
字符串
但是这种方法生成的任何日期都不在给定的区间内。如何随机生成区间内的日期?比如,我想得到一个从2000到2010的日期。
我用time::Date
1条答案
按热度按时间i7uaboj41#
创建一个接受3个参数的函数:
该函数计算日期之间的持续时间(
days_in_range
),并使用它来限制随机整数rng.gen_range(0..days_in_range)
的产生,最后它将该整数添加到开始日期start + Duration::days(random_days)
,从而产生日期范围内的随机日期。字符串