Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将一个时间与另外两个提供的时间进行比较?_Android_Time - Fatal编程技术网

Android 如何将一个时间与另外两个提供的时间进行比较?

Android 如何将一个时间与另外两个提供的时间进行比较?,android,time,Android,Time,我一直很困惑。。就像我们在比较时间一样,绝对不推荐使用字符串。。。但是如果它的格式是(HH:mm:ss)。我应该如何比较它们来做某事 例如: 目标1:9:00:00 目标2:23:00:00 当输入大于Target1且小于Target2时,如何进行比较逻辑 if(input > Target1 && input < Target2){ //do statement A }else{ //do statement B } if(输入>目标1&&input)和小

我一直很困惑。。就像我们在比较时间一样,绝对不推荐使用字符串。。。但是如果它的格式是(HH:mm:ss)。我应该如何比较它们来做某事

例如: 目标1:9:00:00 目标2:23:00:00

当输入大于Target1且小于Target2时,如何进行比较逻辑

if(input > Target1 && input < Target2){
  //do statement A
}else{
  //do statement B
}
if(输入>目标1&&input
所以,如果我的输入时间是10:00:00,它应该运行一个语句 如果输入时间是23:01:00,它应该运行语句B
我该怎么做?大于(>)和小于(如果它们是字符串,则可以将它们从SimpleDataFormat转换为日期对象

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
最简单的方法是通过执行以下操作将它们转换为毫秒数

long time1 = sdf.parse(Target1).getTime();
long time2 = sdf.parse(Target2).getTime();
long inputTime = sdf.parse(input).getTime();
这样,您实际上是在进行整数比较,您可以忘记所有的日期时间业务

if(inputTime > time1 && inputTime < time2)
if(inputTime>time1&&inputTime

但是您必须以上述格式提供时间

您可以使用Calendar函数.getTimeInMillis()计算差异,并获得2个不同时间的差异,这里您只需要在Calendar中设置您的特定时间并与之进行比较

try{
            Calendar calender = Calendar.getInstance();
            Calendar calDb = Calendar.getInstance();
            Calendar matchd = Calendar.getInstance();

            mYear = calender.get(Calendar.YEAR);
            mMonth = calender.get(Calendar.MONTH);
            mDay = calender.get(Calendar.DAY_OF_MONTH);

            mendYear = calDb.get(Calendar.YEAR);
            mendMonth = calDb.get(Calendar.MONTH);
            mendDay = calDb.get(Calendar.DAY_OF_MONTH);    
                       // Here you can change day values        
                    calDb.set(Calendar.DAY_OF_MONTH, mDay-1);

            strbeforedate = mDateFormat.format(calDb.getTime());
            curentdate = mDateFormat.format(calender.getTime());

            calDb.setTime(mDateFormat.parse(strbeforedate));
            calender.setTime(mDateFormat.parse(curentdate));



            String mydate = "2013.03.14 03:11";
            String mdatetime = "";

            deletepath =  new ArrayList<String>();          

                try{
                    // here your matching goes and pass date here 

                     matchd.setTime(mDateFormat.parse(mdatetime));
                     long diff = calDb.getTimeInMillis() - calender.getTimeInMillis();
                     long matchdiff = matchd.getTimeInMillis() - calender.getTimeInMillis();
                        if(diff < matchdiff){

                                     // do your work here
                        }else{

                         // do your else work here

                        }
                }catch(Exception e){
                    e.printStackTrace();
                }                   
        }

        }catch(Exception e){
            e.printStackTrace();
        }

    }
试试看{
日历日历=Calendar.getInstance();
Calendar calDb=Calendar.getInstance();
Calendar matchd=Calendar.getInstance();
mYear=Calendar.get(Calendar.YEAR);
MONTH=Calendar.get(Calendar.MONTH);
mDay=Calendar.get(Calendar.DAY\u OF\u MONTH);
mendYear=calDb.get(日历年);
mendMonth=calDb.get(Calendar.MONTH);
mendDay=calDb.get(日历日期,每月的第天);
//在这里可以更改日值
calDb.set(日历日/月,mDay-1);
strbeforedate=mDateFormat.format(calDb.getTime());
currentdate=mDateFormat.format(calender.getTime());
setTime(mDateFormat.parse(strbeforedate));
calender.setTime(mDateFormat.parse(curentdate));
字符串mydate=“2013.03.14 03:11”;
字符串mdatetime=“”;
deletepath=newarraylist();
试一试{
//这是你的配对,在这里传递日期
setTime(mDateFormat.parse(mdatetime));
long diff=calDb.getTimeInMillis()-calender.getTimeInMillis();
long matchdiff=matchd.getTimeInMillis()-calendar.getTimeInMillis();
if(diff
请检查此链接。我在其他帖子中所述的“之后”和“之前”之前尝试过,但对我无效…=(您是否有任何异常?或者您没有得到正确的结果?
try{
            Calendar calender = Calendar.getInstance();
            Calendar calDb = Calendar.getInstance();
            Calendar matchd = Calendar.getInstance();

            mYear = calender.get(Calendar.YEAR);
            mMonth = calender.get(Calendar.MONTH);
            mDay = calender.get(Calendar.DAY_OF_MONTH);

            mendYear = calDb.get(Calendar.YEAR);
            mendMonth = calDb.get(Calendar.MONTH);
            mendDay = calDb.get(Calendar.DAY_OF_MONTH);    
                       // Here you can change day values        
                    calDb.set(Calendar.DAY_OF_MONTH, mDay-1);

            strbeforedate = mDateFormat.format(calDb.getTime());
            curentdate = mDateFormat.format(calender.getTime());

            calDb.setTime(mDateFormat.parse(strbeforedate));
            calender.setTime(mDateFormat.parse(curentdate));



            String mydate = "2013.03.14 03:11";
            String mdatetime = "";

            deletepath =  new ArrayList<String>();          

                try{
                    // here your matching goes and pass date here 

                     matchd.setTime(mDateFormat.parse(mdatetime));
                     long diff = calDb.getTimeInMillis() - calender.getTimeInMillis();
                     long matchdiff = matchd.getTimeInMillis() - calender.getTimeInMillis();
                        if(diff < matchdiff){

                                     // do your work here
                        }else{

                         // do your else work here

                        }
                }catch(Exception e){
                    e.printStackTrace();
                }                   
        }

        }catch(Exception e){
            e.printStackTrace();
        }

    }