约会Appointment
Posted 总是幸福的老豌豆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约会Appointment相关的知识,希望对你有一定的参考价值。
前言
加油
原文
约会常用会话
❶ The meeting is scheduled for Friday afternoon.
会议安排在星期五下午。
❷ He got a date with Amanda tomorrow night.
明天晚上他跟阿曼达有个约会。
❸ They’re going to honeymoon in Europe.
他们打算在欧洲度蜜月。
❹ Will you help me prepare for the get-together of the old classmates?
你能否帮我为这次老同学聚会做好准备工作?
❶ The boy whistled happily as he walked.
男孩边走边高兴地吹口哨。
❷ What first attracted me was her sense of humor.
她首先吸引我的是她的幽默。
C# periodsssss [重复]
【中文标题】C# periodsssss [重复]【英文标题】:C# periodssssss [duplicate] 【发布时间】:2021-08-04 13:30:25 【问题描述】:我得到了以下任务:
如果可以将给定的约会添加到约会列表中而不重叠,则返回 true 任何其他约会。 name="appointments">当前约会列表 name="appointment">要检查它是否适合其他约会的新约会 如果新约会适合当前约会,则为真:“9-10”、“11-12”、“15-16”
我当前的代码是:
public bool IsAvailable(Appointment[] appointments, Appointment appointment)
bool overlap = true;
foreach (var afspraak in appointments)
overlap = (afspraak.Start >= appointment.End || appointment.Start <= afspraak.End);
return overlap;
这段代码通过了 18 个单元测试中的 10 个:
Should return True:
[TestCase("8-9")] passed
[TestCase("8-8:30")] passed
[TestCase("10-11")] passed
[TestCase("10:45-11")] passed
[TestCase("12-15")] passed
[TestCase("12-13")] passed
[TestCase("13-14")] passed
[TestCase("14-15")] passed
[TestCase("16-17")] passed
[TestCase("16:30-17")] failed
Should return False:
[TestCase("7-8")] failed
[TestCase("8-9:30")] failed
[TestCase("9:30-9:45")] failed
[TestCase("9:30-11")] failed
[TestCase("8-10:30")] failed
[TestCase("17-18")] passed
[TestCase("12-18")] failed
[TestCase("11:30-12:30")] failed
我真的无法弄清楚我做错了什么,有人看到我做错了什么吗?
更新 2: 问题是只有现在“应该返回错误的单元测试”才能通过:(
------
【问题讨论】:
你没有跳出 for 循环,所以只有约会中的最后一个 afspraak 会影响重叠值。 【参考方案1】:使用您当前的方法,bool overlap
仅设置为最后一个比较结果。
一旦检测到无法添加约会而不重叠,请考虑中断/返回。
public bool IsAvailable(Appointment[] appointments, Appointment appointment)
foreach (var afspraak in appointments)
if((afspraak.Start >= appointment.End && appointment.End <= afspraak.Start) is false)
// return here, if the appointment overlaps, no need to continue checking
return false;
return true;
【讨论】:
好吧,它也将节省宝贵的计算时间!除此之外,处理布尔表达式时不需要is false
或==false
。
绝对!条件布尔语句不需要is false
。但是,是否使用 bang 符号 (!) 会降低可读性是有争议的。我建议遵循老师要求的代码风格和设计指南。还应注意,编译器将此比较减少到相同的 IL。
首先感谢您的回答!我检查了你的代码,你是对的,当它面临错误时,它不应该继续检查其他重叠!但是,如果将您的更改放入我的代码中,它只会传递返回真正的单元测试。见更新2
我继续为您更新了它,试试看。我修改了条件检查。
我的代码请参阅更新 2 :)以上是关于约会Appointment的主要内容,如果未能解决你的问题,请参考以下文章
试图获得每个州的总约会。在 MySQL 1055 中出现错误