这是Java / Groovy(我们首先学习语法)。我已经坚持了2天。
这是我的代码:
char am = "a";
char pm = "p";
def to24hour(int hour) {
if (hour >= 1 && hour <= 12) {
int newHour = hour + 12;
return newHour;
} else if (hour >= 13 && hour <= 24) {
int newHour = hour
return newHour;
} else if (hour == 0){
int newHour = hour
return "invalid number used!";
} else {
return "invalid number used!";
}
}
to24hour(3);
这就是问题:
编写一个名为
to24Hour
的函数,该函数有两个参数:小时值和应该是A或P的字母。该函数将指定为AM或PM的时间转换为24小时制的小时数。因此,例如,调用值为5和P的函数应该返回17而5和A应该返回5.这样的函数可能存在哪些问题(如果使用了无效值)?你怎么能处理这些问题?
答案 0 :(得分:0)
试试这个:
char am = "a";
char pm = "p";
int to24hour(int hour, char clock) {
if (hour >= 1 && hour <= 11) {
if(clock == "p") return hour + 12
else return hour
} else if(hour == 12) {
if(clock == "p") hour
else return 0
} else {
throw Exception("invalid number used!")
}
}
[1..12, (1..11).toList() + [0]]
.transpose()
.each { assert to24hour(it[0], am) == it[1] }
[1..12, (13..23).toList() + [12]]
.transpose()
.each { assert to24hour(it[0], pm) == it[1] }