我是新来的,我已经有了一个问题。
我正在为学校做作业(使用Java处理),我们正在从txt文件加载计划。 而且我需要从中进行可视化,它很顺利,但我一度陷入困境。
我想创建一个if语句,以查看当前时间是否在开始时间和结束时间之间。我确实解析了txt文件中的开始时间和结束时间,我可以调用当前时间。但我无法找到或知道if语句。有人可以帮忙吗?
我的部分代码(我无法显示所有内容,因为我有6个标签):
**//From the main tab**
int s = second(); // Values from 0 - 59
int mi = minute(); // Values from 0 - 59
int h = hour(); // Values from 0 - 23
int d = day(); // Values from 1 - 31
int mo = month(); // values from 1 - 12
int y = year();
// searching all data from Table, comparing location with roomsTTH, if its the same check iff itint(random(20)), 20's free
for (TableRow singleRow : tableRooster.rows()) {
ParseInfo parse = new ParseInfo(singleRow);
for (Room roomToCheck : roomsTTH) {
if (parse.location == roomToCheck.id) {
if (roomToCheck.available) {
if ( y == parseInt(parse.year)) {
if (mo == parseInt(parse.month)) {
if ( d == parseInt(parse.day)) {
// if ( isBetween = currentTime.after(parse.startTime) && currantTime.before(parse.endTime)) {
// occupied = true;
// Floor.maxRooms ++;
}
}
}
}
}
}
}
// }
**//From tab Parse**
//StartTime
String startTime;
//EndTime
String endTime;
TableRow myTableRow;
ParseInfo(TableRow tableRow) {
parseRow(tableRow);
}
// Parse data into variables
void parseRow(TableRow row) {
// Divide the parse location to level and room
this.location = row.getString("Location");
this.level = this.location.substring(5, 6);
this.room = this.location.substring(8, 9);
// Divide the parse start date to year, month, day
this.date = row.getString("Start date");
this.day = this.date.substring(9, 10);
this.month = this.date.substring(6, 7);
this.year = this.date.substring(0, 3);
// Parse Start time & End time
this.startTime = row.getString("Start time");
this.endTime = row.getString("End time");
}
}
答案 0 :(得分:0)
您的日期似乎存储为String
值。字符串值没有关于它们是之前还是之后的的概念,因此您必须自己进行比较。您有两种选择:
选项1 :按字母顺序比较String
值。像这样:
String date1 = "2015/10/24";
String date2 = "2015/10/25";
if(date1.compareTo(date2) < 0){
//date 1 is before date2
}
else if(date1.compareTo(date2) > 0){
//date 1 is after date2
}
else{
//they are the same date
}
选项2 :如果由于某种原因这不起作用(例如,如果日期采用不同的格式),那么您可以使用Java的SimpleDateFormat类来解析日期String
进入Date个对象。像这样:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date date1 = sdf.parse("2015/10/24");
Date date2 = sdf.parse("2015/10/25");
if(date1.before(date2)){
//date 1 is before date2
}
else if(date1.after(date2)){
//date 1 is after date2
}
else{
//they are the same date
}