计划分配,从计划中解析的时间之间的Java当前时间

时间:2015-10-24 11:48:22

标签: java parsing if-statement time processing

我是新来的,我已经有了一个问题。

我正在为学校做作业(使用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");
  }
}

1 个答案:

答案 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
}