今天是今年的第n天 [英] Today is nth day of year

查看:126
本文介绍了今天是今年的第n天的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想天数,即..
1月1日为1天
1月2日都是2个工作日
2月1日为32天和12月31日为365白天或366取决于闰年

我已经使用各种技术,如DATE1 - DATE2等..
但似乎没有任何工作,我不能得到正确的逻辑可能是..我要的是数量和添加已经过去的月份数加上正在运行的一个月,即数天的今天2012年9月21日是天数( 31(月)+29(2月)+31(MAR)+30(APR)+31(5月)+30(6月)+31(7月)+31(8月)+20(九月))=第264天,他们将继续增加加一,每次一天晃过...谢谢

我的code

 年整型= Calendar.getInstance()获得(Calendar.YEAR)。
            GregorianCalendar的GC =新的GregorianCalendar();
            gc.set(GregorianCalendar.DAY_OF_MONTH,8);
            gc.set(GregorianCalendar.MONTH,GregorianCalendar.JUNE);
            gc.set(GregorianCalendar.YEAR,年);
            INT numberofDaysPassed = gc.get(GregorianCalendar.DAY_OF_YEAR);

numberofDaysPassed是给我160,令人失望的结果。


解决方案

 日历日历= Calendar.getInstance();
INT DAYOFYEAR = calendar.get(Calendar.DAY_OF_YEAR);

或使用乔达-API

  DateTime的DT =新的DateTime();
INT DAYOFYEAR = dt.getDayOfYear();

如果您需要'日'部分,使用switch语句

 开关(DAYOFYEAR→20(DAYOFYEAR%10):DAYOFYEAR){
            案例1:返回DAYOFYEAR +ST;
                     打破;
            案例2:返回DAYOFYEAR +ND;
                     打破;
            案例3:返回DAYOFYEAR +RD;
                     打破;
            默认:回归DAYOFYEAR +日;
                     打破;
}

I want to get the number of day.. i.e. Jan 1 is day 1 jan 2 is day 2 Feb 1 is day 32 and december 31 is day 365 or 366 depending on leap year or not

i have used all kind of techniques such as date1 - date2 etc... but nothing seems to work for me cant get the logic right may be.. what i want is count and add the number of the months that has gone past plus the number days of the running month i.e today is 21st Sept 2012 is day number (31(jan)+29(feb)+31(mar)+30(apr)+31(may)+30(june)+31(july)+31(aug)+20(sept)) = 264th day and they will keep adding plus one every time a day go past... thanks

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 is giving me 160, undesired result

解决方案

Calendar calendar = Calendar.getInstance();
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);  

Or using Joda-API

DateTime dt = new DateTime();  
int dayOfYear = dt.getDayOfYear();  

If you need 'th' part, use switch statement

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;   
} 

这篇关于今天是今年的第n天的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆