对年、月、日处理清楚的同学进来了哇。。

一年有365天或366天
给你从1-366个数字中的一个
然后再给你一个年份如2012,2011
然后你得出是这个年份的几月几日

例子
天数是:32
年数是2012
结果是2012年2月1日

天数是:61
年数是2012
结果是2012年3月1日

[code="java"]public class YearTest {
//定义每月的天数
public static int month[]={31,28,31,30,31,30,31,31,30,31,30,31};

//判断是否是闰年
public static boolean isLeapYear(int year){
    boolean flag=false;
    if(year%400==0||(year%4==0 && year%100!=0)){ 
        flag=true;
    }
    return flag;
}

//判断某天是一年当中某月的第几天
public static int getDay(int m,int day){
    int sum=0;
    for(int i=0;i<m;i++){
        sum+=month[i];
    }
    return day-sum;
}

public static String getDetail(int year,int day){
    int sum=0;
    int m=0;
    int d=0;
    if(isLeapYear(year)){
        month[1]=29;
    }
    for(int i=0;i<month.length;i++){
        sum=sum+month[i];
        if(sum>=day){
            m=i;
            break;
        }
    }
    d=getDay(m,day);
    String result="哈哈,这是"+year+"年"+(m+1)+"月"+d+"日";
    return result;
}

/**
 * @param args
 */
public static void main(String[] args) {
    String result=YearTest.getDetail(2012,61);
    System.out.println(result);
}

}
[/code]

首先,根据年份能知道这一年是365还是366天
然后看这个数字落在哪个区间就知道是哪个月了,再取余就知道是几号了.
以365天的为例
1月结束 31天
2月结束 59天
3月结束 90天
4月结束 120天
5月结束 151天
6月结束 181天
7月结束 212天
8月结束 243天
9月结束 273天
10月结束 304天
11月结束 334天
12月结束 365天

假设数字是61
[code="java"]
num=61
int month;
int day;
if (num > 334) {
day = num % 334;
month = 11;
} else if (num > 304) {
day = num % 304;
month = 10;
}......
[/code]

用commons-lang最简单。

[code="java"]
DateUtils.addDays(new Date(year - 1900, 0, 1), day - 1);
[/code]

直接调用java API :D

Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR, 2012);
cal.set(Calendar.DAY_OF_YEAR, 32);

cal.getTime()//2012年2月1日