检查当前的DateTime是否在特定百分比的天之间-datetime范围

时间:2018-10-31 07:17:07

标签: c# datetime

我有一个开始日期: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%。

我的方法正确吗?

2 个答案:

答案 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%");
        }