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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zfgrinm 中级黑马   /  2015-3-3 14:06  /  887 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package d18;

  2. import java.text.SimpleDateFormat;
  3. import java.util.Calendar;
  4. import java.util.Date;

  5. public class CalendarTest {

  6.         public static void main(String[] args) {
  7.                 // TODO 自动生成的方法存根

  8.                 Calendar c =Calendar.getInstance();
  9.                 sop(c.get(Calendar.YEAR)+"年");
  10.                 sop(c.get(Calendar.MONTH)+"月");
  11.                 sop(c.get(Calendar.DATE)+"日");
  12.                 Date d =new Date();
  13.                 SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日     时间:HH:mm:ss");
  14.                 sop(sdf.format(d));
  15.                
  16.                
  17.                 c.set(2015,3,3);
  18.                 sop(c.get(Calendar.YEAR)+"年");
  19.                 sop(c.get(Calendar.MONTH)+"月");
  20.                 sop(c.get(Calendar.DATE)+"日");
  21.                 sop("2015年中第"+c.get(Calendar.DAY_OF_YEAR)+"天");
  22.                 sop("星期中第"+c.get(Calendar.DAY_OF_WEEK)+"天");
  23.         }

  24.         public static void sop(Object obj)
  25.         {
  26.                 System.out.println(obj);
  27.         }
  28. }
复制代码
有两个小问题,一直没弄明白,求指教:

1.结果中为什么第一次获取的月份是二月,可现在明明是三月;
2.设置日期为2015,3,3后,获取的年月日都没错,但是获取年中的天数和星期中的天数却是2015年04月03日的当天的所对应的结果,为啥?

0000.png (5.29 KB, 下载次数: 2)

0000.png

5 个回复

倒序浏览
因为是从0开始的,你需要加一, 也就是sop(c.get(Calendar.MONTH)+1)+"月");
回复 使用道具 举报
月份是0-11也就是(月份+1),星期是:1代表星期日,2代表星期一,3代表星期2,以此类推, 你需要写一个Switch判断一下。
回复 使用道具 举报
月份是从0-11
星期是 1代表星期日
楼主可以自定义数组,结合查表法
回复 使用道具 举报
因为月份是从0开始到11的,因此要获取当前日期后面得加1
回复 使用道具 举报
明白了。谢了大家啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马