停车场收费算法,思路卡住了求补完!!
本帖最后由 bulls5988 于 2013-11-22 16:00:03 编辑
一个停车场算法,写了一半不会写了。
需求:员工停车卡。周一到周五,7:00~23:00免费,其余部分每小时收费2元。周六日每小时2元,无免费时间。(需要考虑多天跨天的情况,这里有点不会写了)。求大神帮助补完下代码
public int staff_times(DateTime start_time, DateTime end_time)//开始停车时间,
停车结束时间
{
int fee = 0;//总收费数
int day = 0;//一共间隔了几天
DateTime dt1 = start_time.Date.AddHours(7);//取得入场时间当日7点
DateTime dt2 = start_time.Date.AddHours(23).AddMinutes(1);//取得入场时间当日23点
staff_card staff_week = new staff_card();
string today_week = staff_week.Weeks_time().ToString();//返回数据库时间为周几
int Total_hour = 0;//总停车收费小时数
if (today_week != "周六" && today_week != "周日")//如果不是周六日
{
if (start_time >= dt1 && end_time <= dt2)//如果在免费时段内
{
Total_hour = 0;//收费小时为0
}
else
{
//如果在免费时段外
TimeSpan ts = (dt1 - start_time) + (end_time - dt2);
if (ts.Minutes > 15)
{
Total_hour = (int)(ts.Hours) + 1;
//超出15分钟算1小时
}
else
{
Total_hour = (int)(ts.Hours);
//未超出15分钟算0小时
}
}
}
else //如果是周六日,没有免费时间
{
TimeSpan ts = end_time - start_time;
if (ts.Minutes > 15)
{
Total_hour = (int)(ts.Hours) + 1;
//超出15分钟算1小时
}
else
{
Total_hour = (int)(ts.Hours);
//未超出15分钟算0小时