获得一年中每一天的所有工作时间

我需要在给定年份的每一天中每隔一小时在命令行上打印/打印,例如2011年,但我很难用Java编写代码。

有没有人编码过这个问题?

这应该工作:

final DateFormat df = DateFormat.getDateTimeInstance(); final Calendar c = Calendar.getInstance(); c.clear(); for (c.set(2011, Calendar.JANUARY, 1, 0, 0, 0); c.get(Calendar.YEAR) == 2011; c.add(Calendar.HOUR_OF_DAY, 1)) System.out.println(df.format(c.getTime())); 

请注意,例如,输出中的这个微妙之处:

 Oct 30, 2011 12:00:00 AM Oct 30, 2011 1:00:00 AM Oct 30, 2011 2:00:00 AM Oct 30, 2011 2:00:00 AM Oct 30, 2011 3:00:00 AM 

你可以通过使用joda-time库轻松解决这个问题:

  org.joda.time.Hours.hoursBetween( new org.joda.time.DateMidnight(2012,1,1).toLocalDate(), new org.joda.time.DateMidnight(2013,1,1).toLocalDate() ).getHours(); 

使用日历,并日复一日地循环管理所引用的“字符串引用”,所需的参数,

您可以将每一行(通常用逗号分隔)放在一个文件中