A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    刚学会的一个小程序觉得还好!有兴趣的过来看看!
   需求:计算yyy年xx月zz日是星期几!并计算出是一年中的第几天!
  1. import java.io.*;  
  2. import java.text.*;  
  3. import java.util.Date;

  4. public class Test9 {
  5.                 public static void main(String[] args) throws NumberFormatException, IOException {
  6.                 System.out.println("开始输入日期:");  
  7.                  int month = 0,day = 0;  
  8.                  long year = 0;   
  9.                  //从键盘读取数据,建立转换流  
  10.                  BufferedReader bf =   
  11.                    new BufferedReader(new InputStreamReader(System.in));  
  12.                  BufferedWriter bw =  
  13.                    new BufferedWriter(new OutputStreamWriter(System.out));  
  14.                   
  15.                  String s  = null;  
  16.                  StringBuffer sb = new StringBuffer();  
  17.                  while((s = bf.readLine())!=null){  
  18.                   //年数  
  19.                   year = Integer.valueOf(s.substring(0,4));  
  20.                   if(Integer.valueOf(s.substring(4,5)) == 0){  
  21.                    //月数  
  22.                    month = Integer.valueOf(s.substring(5,6));  
  23.                   }  
  24.                   else{  
  25.                    if(Integer.valueOf(s.substring(4,6)) <= 12)  
  26.                     month = Integer.valueOf(s.substring(4,6));  
  27.                    else  
  28.                    System.out.println("月份输入错误");  
  29.                   }  
  30.                   //当前月天数  
  31.                   if( Integer.valueOf(s.substring(6))<31)
  32.                   {
  33.                   day = Integer.valueOf(s.substring(6));  
  34.                   }
  35.                   else{System.out.println("你输入的天数有错");}
  36.                   
  37.                   //调用Day方法算出天数  
  38.                   System.out.println(year+"年"+month+"月"+day+"日");  
  39.                          System.out.println("第"+Day(year,month,day)+"天");  
  40.                          WeekDay(s);  
  41.                 }
  42.                 }
  43.                 public static void WeekDay(String day){   
  44.                  String[] str ={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  
  45.                  DateFormat  df = new SimpleDateFormat("yyyyMMdd");//日期格式化辅助类  
  46.                   
  47.                  Date  d = new Date();           
  48.                            try{  
  49.                                d  =  df.parse(day);//格式化日期   
  50.                            }catch(ParseException   e){  
  51.                                e.printStackTrace();  
  52.                            }   
  53.                            for(int i=0;i<str.length;i++){  
  54.                                if(d.getDay()==(i))    //根据取出来的数判断取数组下标  
  55.                                {  
  56.                                    System.out.println(str[i]);  
  57.                                }  
  58.                            }  
  59.                 }  
  60.                   
  61.                 public static int Day(long year,int month,int day){  
  62.                  int dateSum1 = 0;  
  63.                  for (int i = 1; i < month; i++){  
  64.                      switch(i){  
  65.                      //如果月份为1,3,5,7,8,,10,12时,自动加31天  
  66.                       case 1: case 3: case 5: case 7: case 8:  case 10:   
  67.                       case 12:dateSum1 += 31; break;  
  68.                       //如果月份为4,6,9,11时,自动加30天  
  69.                       case 4: case 6: case 9: case 11:dateSum1 += 30; break;  
  70.                        case 2:   
  71.                        // 判断是否为闰年,如果是加29,否加28  
  72.                         if((   (year % 4 == 0) & (year % 100 != 0)) | (year % 400 == 0)| dateSum1<30)
  73.                      
  74.                          dateSum1 += 29;  
  75.                         else dateSum1 += 28;      
  76.                         
  77.                      }  
  78.                   }  
  79.                   
  80.                  return dateSum1+day;  
  81.                 }  
  82.                  
  83.                 }  
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马