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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我和我女票在一起6年多了,感情还算稳定,就是她总是会突然问我我们在一起多长时间了!
这我怎么记得住。。。。还好今天看了毕老师的java视频,讲Calendar那一段,于是我就有了想写个程序专门帮我算我俩在一起到底多少天了~
哈哈,还真捅咕出来了~放上来给大家瞧瞧,要是哪里写的不好,哪里可以优化代码的话还请大家多多指出哈~
ps:我俩在一起的时候是2009年的11月15日。。所以我的代码就没设置初始化时间,不过检验的时候倒是用了。。。还掰了半天手指头。。。。
代码如下:

  1. import java.util.*;
  2. import java.text.*;
  3. class LoveDate
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 Calendar c = Calendar.getInstance();//获取Calendar对象
  8.                 //c.set(2016,4,17);//和第14-16行一起检验程序是否准确
  9.                 int num = getNum(c);
  10.                 sopln("今天是公元"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日");//打印现在的年月日
  11.                 sopln("今天是我们在一起的第:"+num+"天~");//打印函数返回的结果
  12.                 sopln("我爱你笨笨!么么哒~");
  13.                 //c.set(2009,10,15);//可以自己设置一个初始化时间
  14.                 //c.add(Calendar.DAY_OF_YEAR,num);//计算自己初始化后的时间的第num天后是哪一天
  15.                 //printCalendar(c);
  16.         }
  17.         public static int getNum(Calendar c )
  18.         {
  19.                 int ts = c.get(Calendar.DAY_OF_YEAR);//获取当前日期是一年的多少天
  20.                 int year= c.get(Calendar.YEAR);//获取当前年份
  21.                 //sopln(ts);
  22.                 if(ts<319)//2009年的11月15日是那一年的第319天,所以用当前天数去和那一天比较
  23.                 {       
  24.                         return (year-2009-1)*365+ts+46+1;//后面的注释真不知道怎么描述。。。。
  25.                 }
  26.                 else if(ts==319)
  27.                         return (year-2009)*365;
  28.                 else
  29.                         return (year-2009)*365+ts-319;
  30.         }

  31.         public static void printCalendar(Calendar c)
  32.         {
  33.                 String [] mons = {"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"};
  34.                 String [] weeks= {"","星期1",        "星期2",        "星期3",        "星期4",        "星期5",        "星期6",        "星期日"};
  35.                 int index = c.get(Calendar.MONTH);
  36.                 int index1 = c.get(Calendar.WEEK_OF_MONTH);
  37.                 sop(c.get(Calendar.YEAR)+"年");
  38.                 sop(mons[index]);
  39.                 sop(c.get(Calendar.DAY_OF_MONTH)+"日");
  40.                 sop(weeks[index1+1]);
  41.         }
  42.         public static void sop(Object obj)
  43.         {
  44.                 System.out.print(obj);
  45.         }
  46.         public static void sopln(Object obj)
  47.         {
  48.                 System.out.println(obj);
  49.         }

  50. }
复制代码

4 个回复

倒序浏览
赞一个,。。。
回复 使用道具 举报
zhangyibo 来自手机 中级黑马 2015-10-23 23:28:33
藤椅
看来没人感兴趣啊。。。
回复 使用道具 举报
66666666666666
回复 使用道具 举报
对单身狗造成一万点伤害
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马