Android 如何将字符串与设备时间匹配
当我的设备时间介于或等于开始时间和结束时间之间时,我希望它显示Android 如何将字符串与设备时间匹配,android,json,Android,Json,当我的设备时间介于或等于开始时间和结束时间之间时,我希望它显示ChogadiaName。这是我获取时间的方法: /*{"chogadia":[{"ChogadiaName":1,"StartTime":"5:31:19 AM","EndTime":"7:14:15 AM","Effect":"Inauspicious Chogadia"},{"ChogadiaName":3,"StartTime":"8:57:10 AM","EndTime":"10:40:5 AM","Effect":"Aus
ChogadiaName
。这是我获取时间的方法:
/*{"chogadia":[{"ChogadiaName":1,"StartTime":"5:31:19 AM","EndTime":"7:14:15 AM","Effect":"Inauspicious Chogadia"},{"ChogadiaName":3,"StartTime":"8:57:10 AM","EndTime":"10:40:5 AM","Effect":"Auspicious Chogadia"},{"ChogadiaName":4,"StartTime":"10:40:5 AM","EndTime":"12:22:59 AM","Effect":"Auspicious Chogadia"}]}*/
public class ChogadiaParser {
public static ArrayList<Chogadia> mList=new ArrayList<Chogadia>();
public static Chogadia mChogadia;
public static String response,chogadia;
public static String Lucky="Auspicious Chogadia";
public static String UnLucky="Inauspicious Chogadia";
public static void GroupResult(String url){
try{
JSONArray jArray;
JSONObject jObject;
response=GetJsonObject.sendRequest(url);
if(response == null){
return;
}
jObject=new JSONObject(response);
jArray=jObject.getJSONArray("chogadia");
mList.clear();
for(int i=0;i<jArray.length();i++){
mChogadia=new Chogadia();
jObject=jArray.getJSONObject(i);
mChogadia.SetChogadiaName(jObject.getString("ChogadiaName"));
mChogadia.SetStartTime(jObject.getString("StartTime"));
mChogadia.SetEndTime(jObject.getString("EndTime"));
mChogadia.SetEffect(jObject.getString("Effect"));
mList.add(mChogadia);
if(mathcTime(jObject.getString("StartTime"),jObject.getString("EndTime"))){
System.out.println("Matched Name Is: " + jObject.getString("ChogadiaName"));
break; // break loop
}
}
}catch(Exception e){
e.printStackTrace();
}
}
private static boolean mathcTime(String stime,String eTime) {
SimpleDateFormat ft = new SimpleDateFormat("hh:mm:ss");
try {
Date ct = new Date();
Date st = ft.parse(stime);
Date et=ft.parse(eTime);;
long currentTime = ((ct.getHours()*60)*60) + (ct.getMinutes()*60) + (ct.getSeconds());
long startTime = ((st.getHours()*60)*60) + (st.getMinutes()*60) + (st.getSeconds());
long endTime = ((et.getHours()*60)*60) + (et.getMinutes()*60) + (et.getSeconds());
if(currentTime>=startTime || currentTime<=endTime){
return true;
}else{
return false;
}
} catch (Exception e) {
}
return false;
}
}
/*{“乔加迪亚”:[{“乔加迪亚名字”:1,“开始时间”:“5:31:19 AM”,“结束时间”:“7:14:15 AM”,“效果”:“不吉利的乔加迪亚”},{“乔加迪亚名字”:3,“开始时间”:“8:57:10 AM”,“结束时间”:“10:40:5 AM”,“效果”:“吉祥的乔加迪亚”},{“乔加迪亚名字”:4,“开始时间”:“10:40:5 AM”,“结束时间”:“12:22:59 AM”,“效果”:“吉祥*/
公共类ChogadiaParser{
public static ArrayList mList=new ArrayList();
公共静态Chogadia mChogadia;
公共静态字符串响应,chogadia;
公共静态字符串Lucky=“吉祥Chogadia”;
公共静态字符串UnLucky=“unesspicous Chogadia”;
公共静态void GroupResult(字符串url){
试一试{
杰索纳雷·贾雷;
JSONObject jObject;
response=GetJsonObject.sendRequest(url);
如果(响应==null){
返回;
}
jObject=新的JSONObject(响应);
jArray=jObject.getJSONArray(“chogadia”);
mList.clear();
对于(int i=0;i=startTime | | currentTime,您应该在
或者你们可以使用哪种手表。安卓系统会发出意向信号。动作时间每分钟都会滴答作响。然后你们可以在接收器中捕捉到它,然后做你们想做的事
Broadcast Action: The current time has changed. Sent every minute. You can not receive this through components declared in manifests, only by exlicitly registering for it with Context.registerReceiver().
还有,你的代码中有什么
currentTime>=startTime || currentTime<=endTime
currentTime>=startTime | | currentTime=startTime&¤tTime如果平板电脑时间大于ServerTime(5分钟),则此代码段将返回true/false
if((serverDate.getTime()>=tabletDate.getTime()-300000)&&
(serverDate.getTime()@Scott W-你能帮我写这段代码吗…-我的prblm是如何在应用程序打开时匹配时间并显示Chogadia名称…-我有这两个条件,但没有给出确切的输出否,currentTime>=startTime | | currentTime=startTime&¤tTimeMath很有用。只需画一个数字轴,将startTime和endTime放在其中,并使用你的不等式区域,你可以清楚地看到一切。-代码正在工作,但现在是新的prblm。我遇到过它只匹配下午时间或从下午12点开始。它与上午9点到11点的时间不匹配AM@Kalai.G-如何检查上午|下午在这是上午还是下午。您需要检查平板电脑时间还是服务器时间?
currentTime>=startTime || currentTime<=endTime
currentTime>=startTime && currentTime<=endTime
if ((serverDate.getTime() >= tabletDate.getTime() - 300000) &&
(serverDate.getTime() <= tabletDate.getTime() + 300000))
{
isTrue = true;
} else {
isTrue = false;
}