首页 > 解决方案 > 测试当前时间是否匹配两个值?

问题描述

我想测试当前时间。两次之间是否一样?

- 有了笔记,我已经做了一个工作函数来输入开始时间和结束时间。

现在我要完成特殊功能。我在两次之间测试这个条目值。

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;
    }


}

标签: javaandroid

解决方案


在您的情况下,您可以为开始日期和结束日期设置单独的日历字段,例如 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,但为此,您需要设置SecondsCalendar 实例的组件。

问候, AJ


推荐阅读