用JAVA怎么编写知道年月日 求这天是这年的第几天

如题所述

  /**********************************
  作者:dongyu
  文件名:date.java
  用法:直接复制粘贴即可
  运行:请输入年:XXXX 回车
  请输入月:XX 回车
  请输入日:XX 回车
  输出:这一天是这一年的第xx天
  ***********************************/
  import java.io.*;
  public class date{
  public static void main(String[] args){
  int year,month,date,mark=1,leap=1,sum=0;
  System.out.println("请输入年:");
  year=IO.getInt();
  System.out.println("请输入月:");
  month=IO.getInt();
  System.out.println("请输入日:");
  date=IO.getInt();
  if(year<0||year>2050)
  {
  System.out.println("输入的年 超出范围!\n");
  mark=0;
  }
  if(month<0||month>12)
  {
  System.out.println("输入的月 超出范围!\n");
  mark=0;
  }
  if(date<0||date>31)
  System.out.println("输入的日 超出范围!\n");
  else if((year%400==0)||(year%4==0&&year%100!=0))
  {
  leap=1;
  if((date<0||date>29)&&month==2)
  {
  System.out.println("输入的日 超出范围!\n");
  mark=0;
  }
  }
  else
  {
  leap=0;
  if((date<0||date>28)&&month==2)
  {
  System.out.println("输入的日 超出范围!\n");
  mark=0;
  }
  }
  if(mark==1)
  {
  switch(month)
  {
  case 1:sum=0;
  break;
  case 2:sum=31;
  break;
  case 3:sum=62;
  break;
  case 4:sum=92;
  break;
  case 5:sum=123;
  break;
  case 6:sum=153;
  break;
  case 7:sum=184;
  break;
  case 8:sum=215;
  break;
  case 9:sum=245;
  break;
  case 10:sum=276;
  break;
  case 11:sum=306;
  break;
  case 12:sum=337;
  break;
  default:
  System.out.println("数据错误");
  }
  if(leap==1&&month>=2)
  {
  sum++;
  sum=sum-2+date;
  }
  else if(leap==0&&month>=2)
  {
  sum++;
  sum=sum-3+date;
  }
  else
  {
  sum++;
  sum=sum+date;
  }
  System.out.println("这一天是这一年的第"+sum+"天");
  }
  else
  System.out.println("输入错误");
  }
  }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-25
操作java.util包里面的类

过时了的Date 以及现在用的 Calendar GregorianCalendar TimeZone 等等

具体要查API 使用起来非常简单 直接调用工厂方法 便能得到本机的一切时间数据

当然你电脑里的必须得准时
相似回答