java编程中的有关时间问题,急急,请求高手帮忙,谢谢

最近在编一个小程序,由于知识有限,目前有个问题一时难以解决。思路是:从系统调用时间,并把时间的格式设置成“星期几 XX:XX”(比如星期一 09:25),然后再把它从一个文本框中输出。2.判断这个时间是否在一个特定的是时间段(比如星期一 09:00~星期一 09:30)里,若是的话,则另一个文本框输出一段文字(如:嗨,帅哥,你好!),不是就输出另外文字(如:哎,美女!)。 这个时间段怎么设置和判断,还有输出的那个时间“星期几 xx:xx”是把它整个看成一个字符串吗? 请求高手解决,很着急的需要解决,谢谢了

代码如下.
-----------------------------------------------------------------------------------
import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Test {

public static void main(String[] args) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(" HH:mm");
Calendar c = Calendar.getInstance();
int week = c.get(Calendar.DAY_OF_WEEK);
DateFormatSymbols dfs = DateFormatSymbols.getInstance();
String str = dfs.getWeekdays()[week];
str += sdf.format(c.getTime());
System.out.println(str);

Calendar before = Calendar.getInstance();
Calendar after = Calendar.getInstance();

before.set(Calendar.HOUR, 9);
before.set(Calendar.MINUTE, 0);
before.set(Calendar.SECOND, 0);
before.set(Calendar.MILLISECOND, 0);

after.set(Calendar.HOUR, 9);
after.set(Calendar.MINUTE, 30);
after.set(Calendar.SECOND, 0);
after.set(Calendar.MILLISECOND, 0);
if (before.getTimeInMillis() < c.getTimeInMillis()
&& after.getTimeInMillis() > c.getTimeInMillis()) {
System.out.println("嗨,帅哥,你好!");
} else {
System.out.println("哎,美女!");
}
}
}追问

能不能程序一执行,一直持续调用时间并做出判断,然后输出?这样得怎么编程。有没有类库里现有的时间比较方法,这显得有点繁琐。而且你这没有文本框,不过也没关系。 谢谢,望解答。

追答

不太少多少.
类库是有比较方法,
但你想过没有,你的起始时间,与终了时间怎么来取?

所以
Calendar before = Calendar.getInstance();
Calendar after = Calendar.getInstance();

before.set(Calendar.HOUR, 9);
before.set(Calendar.MINUTE, 0);
before.set(Calendar.SECOND, 0);
before.set(Calendar.MILLISECOND, 0);

after.set(Calendar.HOUR, 9);
after.set(Calendar.MINUTE, 30);
after.set(Calendar.SECOND, 0);
after.set(Calendar.MILLISECOND, 0);
这个是省不了的.

这个格式化
SimpleDateFormat sdf = new SimpleDateFormat(" HH:mm");
Calendar c = Calendar.getInstance();
int week = c.get(Calendar.DAY_OF_WEEK);
DateFormatSymbols dfs = DateFormatSymbols.getInstance();
String str = dfs.getWeekdays()[week];
str += sdf.format(c.getTime());
System.out.println(str);

也省不了.

所以基本没什么变化.

一直持续调用时间并做出判断
这个用线程来实现.

你这没有文本框
这个没注意

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-28
好了,我给你提供一个思路,你应该能做的,挺简单的,不行了我再帮吧。

1、你的格式是:星期几 XX:XX,但是具体计算的,是分两步进行的,因为“星期几”是字符串,所以比对只能用字符串去equals,不然是无法比较的,只有后面的时间是能转换成date去比较的。
2、先截取一下,将格式分成 星期 和 时间
3、星期在外层判断,用equals
4、时间将它转换为date类型,然后用该对象去比对你定义的一个规范date对象,只需要 == 就可以了
第2个回答  2012-05-27
你想做web的还是c/s的?
输出的时间可以看出字符串,判断的时候根据你取得时间日期来判断就行了