您的位置:首页 > 职场人生

做的一个面试题5分钟刷新当前时间的总结

2016-07-29 14:51 337 查看
做面试题到最后一道,发现题目是5分钟刷新一次当前时间。格式是hh:ss,使用java程序实现

第一感觉是使用while循环解决

Date d=new Date();

然后就卡在获取分钟和秒钟这里了。我第一反应就是getM分钟和get秒钟的两个方法。然后我想到的是日期类Calendar,忘了两个方法的名字是什么?忘了对应的字段是什么?因为手写。

然后简单想了一下,就交卷了。(还剩下了较多时间)

然后交完卷子忽然想起可以使用Date.getMinutes()和Date.getSeconds()两个方法获取。虽然这两个方法已经过时了。

想起可以使用SimpleDateFormat将当前日期解析成yyyy-MM-dd HH:mm:ss格式然后使用字符串的截取获取分钟和秒钟。

最后查JavaSE的api找到Calendar的相关方法:

int
getSeconds()

已过时。 从 JDK 1.1 开始,由
Calendar.get(Calendar.SECOND)
取代。
int
getSeconds()

已过时。 从 JDK 1.1 开始,由
Calendar.get(Calendar.SECOND)
取代。
到后面给出的答案是:可以使用js等完成也可以,不必局限。。。。

反省:

  能用最正确的方法完成使用最正确的方法完成,

  忘了可以使用其他方法曲线达到效果也要去做

  还是不会有印象不是很确定的方法也随便用,毕竟笔试。

  再过来就使用其他语言达到这个效果。

充分给自己时间检查,不急着交卷。大胆,创新。

你妹的,在myeclipes里面使用galendar感觉有问题,出来的实例好像一直是同一个:

for(;;){
Calendar ca=Calendar.getInstance();
System.out.println(ca.MINUTE+" : "+ca.SECOND);
try {
Thread.sleep(1000*1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}


最正确的做法:

原来可以直接使用SimpleDateFormat进行时间格式的限制,也就是SimpleDateFornat sdf=new SimpleDateFormat("mm:ss");

SimpleDateFormat sdf=new SimpleDateFormat("mm:ss");
for(;;){
String str=sdf.format(new Date());
System.out.println(str);
try {
Thread.sleep(5*60*1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}


如果使用js实现的话,使用setInterval(fun,1000*5*60);

function fun(){

  var d=new Date();

  document.write(d.getMinutes()+" : "+d.getSeconds() );

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐