我有一个开始日期:01.01.2018和01.04.2018
如何检查当前日期,例如20.02.2018在开始日期和结束日期之间是否在40%-60%之间?
我认为我必须将所有内容转换为几天,并且必须是这样:
EndDate-StartDate = 90天
90天中的40%是36天
90天中的60%是54天
今天的日期是:20.02.2018 =>今天-StartDate = 50天
50天介于36至54天之间,所以是的,我的日期20.02.2018是我范围内经过的天数的40%至60%。
我的方法正确吗?
答案 0 :(得分:1)
您可以按照以下方式进行操作:
private double CalculatePercentageInRange(DateTime start, DateTime end, DateTime d)
{
TimeSpan periodTimeSpan = end - start; // Get length between start & end
TimeSpan timespanFromStart = d - start; // Get length between datetime to check and start
return timespanFromStart.TotalMilliseconds / periodTimeSpan.TotalMilliseconds * 100;
}
答案 1 :(得分:1)
尝试
DateTime today = Convert.ToDateTime("20.02.2018");
DateTime start = Convert.ToDateTime("01.01.2018");
DateTime End = Convert.ToDateTime("01.04.2018");
TimeSpan diff = (End - start);
double nrofdays = diff.TotalDays;
double percentage = (((today) - (start)).TotalDays) / nrofdays * 100;
if (percentage>=40 && percentage <= 60)
{
MessageBox.Show("yes my date 20.02.2018 is between 40% and 60%");
}