我和我女票在一起6年多了,感情还算稳定,就是她总是会突然问我我们在一起多长时间了!
这我怎么记得住。。。。还好今天看了毕老师的java视频,讲Calendar那一段,于是我就有了想写个程序专门帮我算我俩在一起到底多少天了~
哈哈,还真捅咕出来了~放上来给大家瞧瞧,要是哪里写的不好,哪里可以优化代码的话还请大家多多指出哈~
ps:我俩在一起的时候是2009年的11月15日。。所以我的代码就没设置初始化时间,不过检验的时候倒是用了。。。还掰了半天手指头。。。。
代码如下:
- import java.util.*;
- import java.text.*;
- class LoveDate
- {
- public static void main(String[] args)
- {
- Calendar c = Calendar.getInstance();//获取Calendar对象
- //c.set(2016,4,17);//和第14-16行一起检验程序是否准确
- int num = getNum(c);
- sopln("今天是公元"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日");//打印现在的年月日
- sopln("今天是我们在一起的第:"+num+"天~");//打印函数返回的结果
- sopln("我爱你笨笨!么么哒~");
- //c.set(2009,10,15);//可以自己设置一个初始化时间
- //c.add(Calendar.DAY_OF_YEAR,num);//计算自己初始化后的时间的第num天后是哪一天
- //printCalendar(c);
- }
- public static int getNum(Calendar c )
- {
- int ts = c.get(Calendar.DAY_OF_YEAR);//获取当前日期是一年的多少天
- int year= c.get(Calendar.YEAR);//获取当前年份
- //sopln(ts);
- if(ts<319)//2009年的11月15日是那一年的第319天,所以用当前天数去和那一天比较
- {
- return (year-2009-1)*365+ts+46+1;//后面的注释真不知道怎么描述。。。。
- }
- else if(ts==319)
- return (year-2009)*365;
- else
- return (year-2009)*365+ts-319;
- }
- public static void printCalendar(Calendar c)
- {
- String [] mons = {"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"};
- String [] weeks= {"","星期1", "星期2", "星期3", "星期4", "星期5", "星期6", "星期日"};
- int index = c.get(Calendar.MONTH);
- int index1 = c.get(Calendar.WEEK_OF_MONTH);
- sop(c.get(Calendar.YEAR)+"年");
- sop(mons[index]);
- sop(c.get(Calendar.DAY_OF_MONTH)+"日");
- sop(weeks[index1+1]);
- }
- public static void sop(Object obj)
- {
- System.out.print(obj);
- }
- public static void sopln(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码 |
|