【发布时间】:2016-01-15 05:30:55
【问题描述】:
我想创建一个允许用户检查当前时间是否在指定时间间隔之间的应用。更具体地说,我使用 sqllite 程序创建了一个 sql 表,该表指定了每条记录的结束时间和开始时间。问题是每个字段的数据类型仅限于文本、数字和日期时间类型以外的其他类型。那么,我如何能够检查当前时间是否在开始时间和结束时间之间,因为时间的格式是 h:mm 而不仅仅是一个我可以小于或大于的整数值?我必须将当前时间转换为分钟吗?
【问题讨论】:
我想创建一个允许用户检查当前时间是否在指定时间间隔之间的应用。更具体地说,我使用 sqllite 程序创建了一个 sql 表,该表指定了每条记录的结束时间和开始时间。问题是每个字段的数据类型仅限于文本、数字和日期时间类型以外的其他类型。那么,我如何能够检查当前时间是否在开始时间和结束时间之间,因为时间的格式是 h:mm 而不仅仅是一个我可以小于或大于的整数值?我必须将当前时间转换为分钟吗?
【问题讨论】:
即使时间没有存储在 datetime 类型中,您也应该能够进行比较,here 是一个解释从字符串到时间的转换的链接。
如果这不起作用,请将时间转换为秒 (int) 并计算差值。
【讨论】:
试试这个。您可以将时间保存和检索为字符串:
String to long: String.valueOf()
long to String: Long.valueOf()
然后,您使用此过程来检查时间:
//Time checker
private boolean timeCheck(long startTimeInput, long endTimeInput) {
long currentTime = System.currentTimeMillis();
if ((currentTime > startTimeInput) && (currentTime < endTimeInput)) {
return true;
} else {
return false;
}
}
然后在你的主程序中像这样检查它:
//You kept the times as String
if (timeCheck(Long.valueOf(start), Long.valueOf(end))) {
//it is in the interval
} else {
//not in the interval
}
希望对你有帮助。
【讨论】: