参见英文答案 > Julian day of the year in Java 6个
我想得到一天的数量..即
1月1日是第1天
1月2日是第2天
2月1日是第32天,12月31日是第365天或366,具体取决于闰年
我使用了各种技术,如date1 – date2等…
但似乎没有任何东西对我来说不能正确的逻辑可能是…我想要的是计算并添加已经过去的月份的数量加上运行月份的天数,即今天是2012年9月21日是天数( 31(jan)29(feb)31(mar)30(apr)31(may)30(6月)31(7月)31(aug)20(sept))=第264天他们每次都会加上一加一一天过去…谢谢
mycode的
int year = Calendar.getInstance().get(Calendar.YEAR);
GregorianCalendar gc = new GregorianCalendar();
gc.set(GregorianCalendar.DAY_OF_MONTH, 8);
gc.set(GregorianCalendar.MONTH, GregorianCalendar.JUNE);
gc.set(GregorianCalendar.YEAR, year);
int numberofDaysPassed=gc.get(GregorianCalendar.DAY_OF_YEAR);
numberofDaysPassed给了我160,不受欢迎的结果
解决方法:
Calendar calendar = Calendar.getInstance();
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
或者使用Joda-API
DateTime dt = new DateTime();
int dayOfYear = dt.getDayOfYear();
如果你需要’th’部分,请使用switch语句
switch (dayOfYear > 20 ? (dayOfYear % 10) : dayOfYear) {
case 1: return dayOfYear + "st";
break;
case 2: return dayOfYear + "nd";
break;
case 3: return dayOfYear + "rd";
break;
default: return dayOfYear + "th";
break;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。