计算一年中第几天

算法1: 用一个array存着每个月的天数{31,28,31,30…..},再根据month值累加前对应的月份!然后加上天数;最后确定是否leap year,若是并且月份大于2, 在刚的result上+1.

算法2: 用switch:

int sum=0;
for(int i=1;i<month;i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:sum+=31; break;
case 4:
case 6:
case 9:
case 11:sum+=30; break;
case 2: if(((year%4==0) & (year%100!=0)) | (year%400==0))sum+=29; else sum+=28;
}
}
return sum=sum+day;

这样也比较简单明了!各自的case到各自的天数!

算法3: 这个不能算算法了,就用java util中的SimpleDataFormat类来完成。
我昨天就是用的这种方法,看上去比较舒服!
SimpleDateFormat fmt = new SimpleDateFormat(“yyyy-MM-dd”);
//规定一个时间格式,用的时候可以用Date date = fmt.parse("2010-9-10"),来输出一个Date类型
 然后在用另外的format来处理这个
 D就是表示在一年中的天数,当然还有很多参数,这里我只用到D
 SimpleDateFormat dayFmt = new SimpleDateFormat(“D”);
String result = dayFmt.format(date);
就得到了在当年的天数。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s