如果告诉你今天是2005-12-25日,问你今天是本年的第几天?
能行嘛  标上注释~拜托 
要有高级算法的  不要简单的那种!!
拜托了  让小弟号号学习学习!
顺便问一下  有过自学经验的说下  自学到JAVA的那个知识点 而且编个什么程序 可以出去找到工作~~全市小弟疑问  高手来说下  拜托~

解决方案 »

  1.   

    为什么要用复杂的
    Calendar类已经帮你做好了
      

  2.   

    Calendar calendar=new Calendar();
    calendar.set(Calendar.YEAR,2005,Calendar.Month,12,Calendar.Date,25);SimpleDateFormat sdf= new DateFormat("D");
    System.out.println(sdf.format(calendar.getTime()));/*也可以直接使用new DateFormat().parse(String text)来把字符串转换成一个Date对象,再来获得12.25是一年中的第几天*/
    大体是这样的,你可以去看看java.util.包
      

  3.   

    import java.util.Calendar;public class TestCalendar {
    public static void main(String[] args) {
    // 利用Calendar打印出当前时间为本年的第几天
    System.out.println(Calendar.getInstance().get(Calendar.DAY_OF_YEAR)); // 给定日期 利用Calendar打印出给定时间为本年的第几天。注:Calendar.DECEMBER=11
    Calendar c = Calendar.getInstance();
    // Calendar.DECEMBER=11 ?
    c.set(2005, Calendar.DECEMBER, 25);
    System.out.println(c.get(Calendar.DAY_OF_YEAR));
    }}是静安寺不是道明寺,是源程序不是言承旭;是在静安寺写源程序,不是在流星花园看F4。
      

  4.   

    Calendar calendar=new Calendar();
    ??
    搞笑的~
     Calendar 有这样构造函数么是静安寺不是道明寺,是源程序不是言承旭;是在静安寺写源程序,不是在流星花园看F4。
      

  5.   

    不好意思 刚才写错了
    Calendar calendar=new Calendar();
    calendar.set(Calendar.YEAR,2005,Calendar.Month,12,Calendar.Date,25);/*SimpleDateFormat sdf= new SimpleDateFormat("D");
    System.out.println(sdf.format(calendar.getTime()));
    */
    System.out.println(Calendar.DAY_YEAR);
    /*也可以直接使用new DateFormat().parse(String text)来把字符串转换成一个Date对象,再来获得12.25是一年中的第几天*/
    大体是这样的,你可以去看看java.util.包
      

  6.   

    有没有 你自己去看看 java api吧
      

  7.   

    System.out.println(Calendar.DAY_OF_YEAR);
      

  8.   

    我看的是源代码
        protected Calendar()
        {        this(TimeZone.getDefaultRef(), Locale.getDefault());
    sharedZone = true;
        
    }看修饰符 protected  受保护的
    非继承类 和同包 你可以用构造函数么??
    请指教!是静安寺不是道明寺,是源程序不是言承旭;是在静安寺写源程序,不是在流星花园看F4。
      

  9.   

    // 自己写也不错!:)
    import java.util.*;
    import java.text.SimpleDateFormat;
    public class Test 
    {
    public static void main(String[] args)
    {
    int day,month,year,sum,leap;
    String szDate = null;
    if (args[0] != null)
    {
    szDate = args[0];
    }
    else
    {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    szDate = sdf.format(new Date());
    }

    year = Integer.parseInt(szDate.substring(0,4));
    month = Integer.parseInt(szDate.substring(5,7));
    day = Integer.parseInt(szDate.substring(8,10));

    sum = 0;
    switch(month)/*先计算某月以前月份的总天数*/
    {
    case 1:sum=0;break;
    case 2:sum=31;break;
    case 3:sum=59;break;
    case 4:sum=90;break;
    case 5:sum=120;break;
    case 6:sum=151;break;
    case 7:sum=181;break;
    case 8:sum=212;break;
    case 9:sum=243;break;
    case 10:sum=273;break;
    case 11:sum=304;break;
    case 12:sum=334;break;
    default:System.out.println("日期错误");break;
    }
    sum=sum+day;/*再加上某天的天数*/

    if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
    leap=1;
    else
    leap=0;

    if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
    sum++;
    System.out.println("这是"+year+"年的第"+sum+"天");
    }
    }
    运行如下:
    F:\>javac Test.javaF:\>java Test 2005-08-11
    2005-08-11
    年2005
    月8
    日11
    这是2005年的第223天PS:可以添加NumberFormatException 捕获非格式日期异常.
      

  10.   

    to yuzl32(Hello!)  厉害 估计是以前写好的吧
    如果我考虑的话 就会 把 date 相减 获得 毫秒差 然后 除一天的毫秒数。
    相形之下 还是你的 好,效率也高 乘除法效率很低的!  是静安寺不是道明寺,是源程序不是言承旭;是在静安寺写源程序,不是在流星花园看F4。