微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 今天是一年中的第n天[复制]

参见英文答案 > 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 举报,一经查实,本站将立刻删除。

相关推荐