java - 测试当前时间是否匹配两个值?
问题描述
我想测试当前时间。两次之间是否一样?
- 有了笔记,我已经做了一个工作函数来输入开始时间和结束时间。
现在我要完成特殊功能。我在两次之间测试这个条目值。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int hourStart = 5;
int minuteStart = 30;
String PMAMStart="AM";
int hourEnd = 6;
int minuteEnd = 30;
String PMAMEnd="AM";
boolean checkTime= checkCurrentTimeBetweenTowVlue(hourStart,minuteStart,PMAMStart,hourEnd,minuteEnd,PMAMEnd);
}
private boolean checkCurrentTimeBetweenTowVlue(int hStart,int mStart,String ampmStart,int hEnd,int mEnd,String ampmEnd){
Calendar cal = Calendar.getInstance();
return false;
}
}
解决方案
在您的情况下,您可以为开始日期和结束日期设置单独的日历字段,例如 AM_PM、小时和分钟,将时间转换为分钟,然后找出时间之间的差异。这是解决方案:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int hourStart = 5;
int minuteStart = 30;
String PMAMStart="AM";
int hourEnd = 6;
int minuteEnd = 30;
String PMAMEnd="AM";
boolean checkTime= checkCurrentTimeBetweenTwoValues(hourStart,minuteStart,PMAMStart,hourEnd,minuteEnd,PMAMEnd);
if (checkTime) {
System.out.println("Time is Same");
} else {
System.out.println("Time is not Same");
}
}
private boolean checkCurrentTimeBetweenTwoValues(int hStart,int mStart,String ampmStart,int hEnd,int mEnd,String ampmEnd){
Calendar startCalendar = Calendar.getInstance();
Calendar endCalendar = Calendar.getInstance();
if (ampmStart.equalsIgnoreCase("AM")) {
startCalendar.set(Calendar.AM_PM, 0);
} else {
startCalendar.set(Calendar.AM_PM, 1);
}
startCalendar.setTimeZone(TimeZone.getDefault());
startCalendar.set(Calendar.HOUR, hStart);
startCalendar.set(Calendar.MINUTE, mStart);
if (ampmEnd.equalsIgnoreCase("AM")) {
endCalendar.set(Calendar.AM_PM, 0);
} else {
endCalendar.set(Calendar.AM_PM, 1);
}
endCalendar.setTimeZone(TimeZone.getDefault());
endCalendar.set(Calendar.HOUR, hEnd);
endCalendar.set(Calendar.MINUTE, mEnd);
long timeDifference = TimeUnit.MILLISECONDS.toMinutes(
Math.abs(endCalendar.getTimeInMillis() - startCalendar.getTimeInMillis()));
System.out.println(("Time Difference: " + timeDifference));
return (timeDifference == 0);
}
}
您也可以TimeUnit.MILLISECONDS.toSeconds
用于检查 Seconds,但为此,您需要设置Seconds
Calendar 实例的组件。
问候, AJ
推荐阅读
- rust - Cargo 无法为 rustc_version 选择版本
- android - 如何在适配器中使用 putExtra 和 getExtra 意图?
- javascript - 嗨,我正在使用 react-native 和 react-navigation
- c++ - 如何在 VSCode 上使用`launch.json` 来制作运行 C++ 程序的快捷方式?
- javascript - 按日期范围过滤数组
- reactjs - 打字稿中文档的KeyDown EventHandler反应
- ms-access - 访问计算字段 if 语句
- java - Java 泛型 - 不适用于参数
- android - 如何从 WebKit Cookiemanager cookie 中获取过期/持久性?
- flutter - 无法以可靠的 null 安全性运行,因为以下依赖项不支持 null 安全性