黑马程序员技术交流社区

标题: 这个程序的思想有点不太懂,能不能给说一下 [打印本页]

作者: yunzhongzhuhuo    时间: 2014-3-3 20:03
标题: 这个程序的思想有点不太懂,能不能给说一下
  1. Calendar cal=Calendar.getInstance();
  2.                 cal.set(1931, 8,1);
  3.                 int week=cal.get(Calendar.DAY_OF_WEEK)-1;
  4.                 String []a=new String[week+30];
  5.                
  6.                 for(int i=0;i<week;i++){
  7.                         a[i]="";
  8.                 }
  9.                
  10.                 for(int i=week,n=1;i<week+30;i++){
  11.                         a[i]=String.valueOf(n);
  12.                         n++;
  13.                 }
  14.                
  15.                 int year=cal.get(Calendar.YEAR);
  16.                 int month=cal.get(Calendar.MONTH)+1;
  17.                 System.out.printf("%4c%4c%4c%4c%4c%4c%4c\n",'日','一','二','三','四','五','六');
  18.                 for(int i=0;i<a.length;i++){
  19.                         if(i%7==0&&i!=0)
  20.                                 System.out.println();
  21.                         System.out.printf("%5s",a[i]);
  22.                 }
复制代码

作者: 平凡成就非凡    时间: 2014-3-3 20:14
我看拉一下你的代码,你是要设置一个日期,让它告诉你这是星期几,还有是哪一年的第几天是码。我基础测试的时候做过这题。给你看看代码


import java.io.*;
import java.util.*;
/**
* 9 编写程序,该程序启动后用户可以按yyyy-mm-dd的格式输入一个日期,
* 程序计算这一天是星期几,并且计算出是一年中的第几天
*
* */
class Test9
{
        public static void main(String[] args) throws IOException
        {
                System.out.println("请你以yyyy-mm-dd的格式输入日期");
                //从键盘接受数据
                BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
                //读取一行
                String st=bufr.readLine();
                //把字符串切割成字符串数组
                String[] arr=st.split("-");
                //获取年
                int year=Integer.parseInt(arr[0]);
                //获取月 -1是因为计算机是从0开始计算月的
                int month=(Integer.parseInt(arr[1]))-1;
                //获取天
                int day=Integer.parseInt(arr[2]);
                //创建一个日历对象
                Calendar c=Calendar.getInstance();
                //设置日期
                c.set(year,month,day);
                //调用日历打印方法
                         printCalendar(c);
        }
        public static void printCalendar(Calendar c)
        {
                //创建月的表
                String[] mon={"1月","2月","3月","4月"
                             ,"5月","6月","7月","8月"
                                        ,"9月","10月","11月","12月"};
                //创建星期的表
                String[] week={"","星期天","星期一","星期二"
                                                ,"星期三","星期四","星期五","星期六"};
                //获取月表索引
                int index=c.get(Calendar.MONTH);
                //获取星期表索引  是从星期天开始算的
                int index1=c.get(Calendar.DAY_OF_WEEK);
                //获取年
                System.out.println(c.get(Calendar.YEAR)+"年");
                //获取月
                System.out.println(mon[index]);
                //获取天
                System.out.println(c.get(Calendar.DAY_OF_MONTH)+"日");
                //获取星期几
                System.out.println(week[index1]);
                //获取是今年的第几天
                System.out.println("是这一年中的第"+c.get(Calendar.DAY_OF_YEAR)+"天");
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2