编程开发 > JAVA > 文章内容

java基础知识总结(41)

2016-5-27编辑:ljnbset

应用示例

        下面以两个简单的示例介绍时间和日期处理的基本使用。

         1、计算两个日期之间相差的天数

例如计算2010年4月1号和2009年3月11号之间相差的天数,则可以使用时间和日期处理进行计算。

该程序实现的原理为:首先代表两个特定的时间点,这里使用Calendar的对象进行代表,然后将两个时间点转换为对应的相对时间,求两个时间点相对时间的差值,然后除以1天的毫秒数(24小时X60分钟X60秒X1000毫秒)即可获得对应的天数。实现该示例的完整代码如下:

         import java.util.*;

/**

 *计算两个日期之间相差的天数

 */

public class DateExample1 {

         public static void main(String[] args) {

                   //设置两个日期

                   //日期:2009年3月11号

                   Calendar c1 = Calendar.getInstance();

                   c1.set(2009, 3 - 1, 11);

                   //日期:2010年4月1号

                   Calendar c2 = Calendar.getInstance();

                   c2.set(2010, 4 - 1, 1);

                   //转换为相对时间

                   long t1 = c1.getTimeInMillis();

                   long t2 = c2.getTimeInMillis();

                   //计算天数

                   long days = (t2 - t1)/(24 * 60 * 60 * 1000);

                   System.out.println(days);

         }

}

         2、输出当前月的月历

该示例的功能是输出当前系统时间所在月的日历,例如当前系统时间是2009年3月10日,则输出2009年3月的日历。

该程序实现的原理为:首先获得该月1号是星期几,然后获得该月的天数,最后使用流程控制实现按照日历的格式进行输出即可。即如果1号是星期一,则打印一个单位的空格,如果1号是星期二,则打印两个单位的空格,依次类推。打印完星期六的日期以后,进行换行。实现该示例的完整代码如下:

         import java.util.*;

/**

 *输出当前月的日历

 */

public class DateExample2{

         public static void main(String[] args){

                   //获得当前时间

                   Calendar c = Calendar.getInstance();

                   //设置代表的日期为1号

                   c.set(Calendar.DATE,1);

                   //获得1号是星期几

                   int start = c.get(Calendar.DAY_OF_WEEK);

                   //获得当前月的最大日期数

                   int maxDay = c.getActualMaximum(Calendar.DATE);  

                 

                   //输出标题

                   System.out.println("星期日 星期一 星期二 星期三 星期四 星期五  星期六");

                   //输出开始的空格

                   for(int i = 1;i < start;i++){

                            System.out.print("      ");

                   }

                   //输出该月中的所有日期

                   for(int i = 1;i <= maxDay;i++){

                            //输出日期数字

                            System.out.print(" " + i);

                            //输出分隔空格

                            System.out.print("     ");

                            if(i < 10){

                                     System.out.print(' ');

                            }

                            //判断是否换行

                            if((start + i - 1) % 7 == 0){

                                     System.out.println();      

                            }

                   }

                   //换行

                   System.out.println();      

         }      

}

        关于时间和日期的处理就介绍这么多,更多的实现方法还需要根据具体问题进行对应的实现。

java基础知识总结(40)

热点推荐

登录注册
触屏版电脑版网站地图