java - 测试当前时间两个值是否匹配?

标签 java android

我想测试当前时间。 两次的结果一样吗?

-有了注释,我已经完成了工作 输入开始时间的函数 以及结束的时间。

现在我想完成特殊功能。 我正在两次之间测试这个输入值。

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 来检查秒数,但为此,您需要设置日历实例的秒数组件。

问候, 阿杰

关于java - 测试当前时间两个值是否匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59575727/

相关文章:

java - HTTP 响应中缺少数据

java - 如何创建具有不可修改键的 Java Map<String,String> ?

java - Android:通过 BLE 发送数据 >20 字节

android - 无法将 null 传递给 execute(); android 4.0中AsyncTask的方法

android - picasso 图像加载器 : loading updated images from url

java - 我的应用程序非常大(10GB)。如何查看数据或错误代码?

java - 检查映射中的键是否与Java中的List内容匹配

android - 无法在 ICS 中接收广播

android - 将菜单添加到 child 偏好屏幕

android - 使用 Google Drive 备份和恢复 SQLite 数据库