Сравнение времени

Вот то, с чем я пришел. но вам нужно развернуть это на сервере, чтобы работать, или вы получите эту ошибку, независимо от того, что, даже если вы добавите песочницу. это необходимо развернуть на сервере с правильным URL-адресом http / https (локальный или IP-адрес не будет работать)

embed.2019-01-15_bcdc2b81.js:1 Uncaught DOMException: Failed to read the 'cookie' property from 'Document': The document is sandboxed and lacks the  

var list = ["spotify:album:1DFixLWuPkv3KT3TnV35m3"];
var url = "https://embed.spotify.com?uri="
for (var i = 0; i < list.length; i++) {
    var source =url + list[i]
    var iframe = document.createElement("iframe");
    iframe.src = source;
    iframe.width = "300";
    iframe.height = "380";
    iframe.frameborder = "0";
    iframe.allowtransparency = "true";
    iframe.allow = "encrypted-media";
    document.getElementById("demo").appendChild(iframe);
    
}
iframe{
border:1px solid red;
width:100%;
height:100%;
}
<div id="demo"></div>
[118 ]

29
задан Kai 30 October 2012 в 09:56
поделиться

6 ответов

Java еще не имеет хорошего встроенного класса Time (он предназначен для запросов JDBC, но это не то, что нужно).

Одним из вариантов является использование API JodaTime и его класса LocalTime .

Используя только встроенные API Java, вы застряли с java.util.Date . Для анализа времени можно использовать SimpleDateFormat , а затем функции сравнения Date , чтобы узнать, до или после какого-либо другого времени:

SimpleDateFormat parser = new SimpleDateFormat("HH:mm");
Date ten = parser.parse("10:00");
Date eighteen = parser.parse("18:00");

try {
    Date userDate = parser.parse(someOtherDate);
    if (userDate.after(ten) && userDate.before(eighteen)) {
        ...
    }
} catch (ParseException e) {
    // Invalid date was entered
}

Или вы могли бы просто использовать некоторые последовательности манипуляции, возможно регулярное выражение, чтобы извлечь только часы и минуты части, преобразовать их в числа и сделать численное сравнение:

Pattern p = Pattern.compile("(\d{2}):(\d{2})");
Matcher m = p.matcher(userString);
if (m.matches() ) {
    String hourString = m.group(1);
    String minuteString = m.group(2);
    int hour = Integer.parseInt(hourString);
    int minute = Integer.parseInt(minuteString);

    if (hour >= 10 && hour <= 18) {
        ...
    }
}

На самом деле все зависит от того, чего вы пытаетесь достичь.

54
ответ дан 28 November 2019 в 00:51
поделиться
import java.util.Calendar;

Calendar cal = Calendar.getInstance();
int currentHour = cal.get(Calendar.HOUR);
if (currentHour > 10 && currentHour < 18) {
    //then rock on
}
2
ответ дан austin 28 November 2019 в 00:51
поделиться

Адам хорошо объяснил в своем ответе Но я использовал этот способ. Я думаю, что это самый простой способ понять сравнение времени в java

Сначала создайте 3 объекта каландра с настройкой только вашего времени, Час и мин.

тогда получите GMT ​​миллисекунды того времени и просто сравните.

Пр.

Calendar chechDateTime = Calendar.getInstance();
chechDateTime.set(Calendar.MILLISECOND, 0);
chechDateTime.set(Calendar.SECOND, 0);
chechDateTime.set(Calendar.HOUR, 11);
chechDateTime.set(Calendar.MINUTE, 22);


Calendar startDateTime = Calendar.getInstance();
startDateTime.set(Calendar.MILLISECOND, 0);
startDateTime.set(Calendar.SECOND, 0);
startDateTime.set(Calendar.HOUR, 10);
startDateTime.set(Calendar.MINUTE, 0);

Calendar endDateTime = Calendar.getInstance();
endDateTime.set(Calendar.MILLISECOND, 0);
endDateTime.set(Calendar.SECOND, 0);
endDateTime.set(Calendar.HOUR, 18);
endDateTime.set(Calendar.MINUTE, 22);

 long chechDateTimeMilliseconds=chechDateTime.getTime().getTime();
 long startDateTimeMilliseconds=startDateTime.getTime().getTime();
 long endDateTimeMilliseconds=endDateTime.getTime().getTime();


System.out.println("chechDateTime : "+chechDateTimeMilliseconds);
System.out.println("startDateTime "+startDateTimeMilliseconds);
System.out.println("endDateTime "+endDateTimeMilliseconds);



if(chechDateTimeMilliseconds>=startDateTimeMilliseconds && chechDateTimeMilliseconds <= endDateTimeMilliseconds ){
       System.out.println("In between ");
    }else{
         System.out.println("Not In between ");
    }

Вывод будет выглядеть так:

chechDateTime : 1397238720000
startDateTime 1397233800000
endDateTime 1397263920000
In between 
2
ответ дан Sameer Kazi 28 November 2019 в 00:51
поделиться

Далее предполагается, что ваши часы и минуты хранятся в виде int в переменных с именами hh и мм соответственно.

if ((hh > START_HOUR || (hh == START_HOUR && mm >= START_MINUTE)) &&
        (hh < END_HOUR || (hh == END_HOUR && mm <= END_MINUTE))) {
    ...
}
2
ответ дан 28 November 2019 в 00:51
поделиться

пример:

import java.util.*;   
import java.lang.Object;   
import java.text.Collator;   
public class CurrentTime{   
  public class CurrentTime   
{   
    public static void main( String[] args )   
    {   
        Calendar calendar = new GregorianCalendar();   
        String am_pm;   
        int hour = calendar.get( Calendar.HOUR );   
        int minute = calendar.get( Calendar.MINUTE );   
        // int second = calendar.get(Calendar.SECOND);   
        if( calendar.get( Calendar.AM_PM ) == 0 ){   
            am_pm = "AM";   
            if(hour >=10)   
                System.out.println( "welcome" );   
        }               
        else{   
            am_pm = "PM";   
            if(hour<6)   
                System.out.println( "welcome" );   
        }   

        String time = "Current Time : " + hour + ":" + minute + " " + am_pm;   
        System.out.println( time );    
    }   
}  

Источник

5
ответ дан 28 November 2019 в 00:51
поделиться

Из вашего заявления кажется, что вы просто хотите написать:

if (10 >= hh && hh < 18) {
  ...
}

Это тривиально, если вам уже даны часы. Но вы, конечно, спрашиваете что-то другое?

4
ответ дан 28 November 2019 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: