zoukankan      html  css  js  c++  java
  • JAVASE02-Unit03: 日期操作 、 集合框架

        Unit03: 日期操作 、 集合框架    

    java.util.Date

    package day03;
    
    import java.util.Date;
    
    /**
     * java.util.Date
     * Date内部维护一个long值,该值表示自1970年元旦
     * 到该对象表示的时间点之间所经过的毫秒值
     * 由于Date存在时区,千年虫问题,所以在jdk1.1发布
     * 时大部分操作时间的方法全部被标注为过时方法,不再
     * 建议使用。
     * 现在Date仅用于表示一个具体的时间点。
     * @author adminitartor
     *
     */
    public class DateDemo {
        public static void main(String[] args) {
            //默认创建出来表示当前系统时间
            Date now = new Date();
            /*
             * Date重写了toString
             * 显示日期的格式对非英语地区不十分友好
             */
            System.out.println(now);
            /*
             * long getTime()
             * 获取当前Date内部维护的long值
             * 即:1970年元旦到当前对象表示的时间之间
             * 所经过的毫秒
             */
            long time = now.getTime();
            
            time += 1000*60*60*24;
            /*
             * void setTime(long time)
             * 将给定的long值设置到当前Date对象中
             * 使其表示这个时间
             */
            now.setTime(time);
            System.out.println(now);
        }
    }
    DateDemo.java

    java.text.SimpleDateFormat

    该类可以按照一个给定的日期格式字符串将Date

    package day03;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * java.text.SimpleDateFormat
     * 该类可以按照一个给定的日期格式字符串将Date
     * 与String之间相互转换
     * @author adminitartor
     *
     */
    public class SimpleDateFormat_Format {
        public static void main(String[] args) {
            Date now = new Date();
            System.out.println(now);
            
            /*
             * 2016-12-26 10:20:55
             * yyyy-MM-dd HH:mm:ss
             */
            SimpleDateFormat sdf
                = new SimpleDateFormat(
                    "yyyy-MM-dd HH:mm:ss"
                );
            /*
             * Date->String
             * String format(Date date)
             * 将给定的Date按照指定的日期格式转换
             * 为字符串
             */
            String str = sdf.format(now);
            System.out.println(str);
        }
    }
    SimpleDateFormat_Format.java

    java.text.SimpleDateFormat

    将字符串按照指定的日期格式解析为Date对象

    package day03;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /**
     * 将字符串按照指定的日期格式解析为Date对象
     * @author adminitartor
     *
     */
    public class SimpleDateFormat_Parse {
        public static void main(String[] args) throws ParseException {
            String str = "2008-08-08 20:08:08";
            
            SimpleDateFormat sdf
                = new SimpleDateFormat(
                    "yyyy-MM-dd HH:mm:ss"    
                );
            /*
             * String->Date
             * Date parse(String str)
             * 将给定的字符串按照指定的日期格式解析
             * 为Date,使其表示该日期  
             */
            Date date = sdf.parse(str);
            
            System.out.println(date);
            
        }
    }
    SimpleDateFormat_Parse.java

    根据用户输入的生日,计算该用户到今天为止, 一共活了多少天?

     1 package day03;
     2 
     3 import java.text.ParseException;
     4 import java.text.SimpleDateFormat;
     5 import java.util.Date;
     6 import java.util.Scanner;
     7 
     8 /**
     9  * 根据用户输入的生日,计算该用户到今天为止
    10  * 一共活了多少天?
    11  * 要求用户输入的生日格式如:1992-08-02
    12  */
    13 public class Test1 {
    14     public static void main(String[] args) throws ParseException {
    15         //获取用户输入
    16         Scanner scanner = new Scanner(System.in);
    17         System.out.println(
    18             "请输入您的生日:yyyy-mm-dd"
    19         );
    20         String birthStr = scanner.nextLine();
    21         
    22         //将用户输入的生日转换为Date对象
    23         SimpleDateFormat sdf
    24             = new SimpleDateFormat(
    25                 "yyyy-MM-dd"    
    26             );
    27         Date birthDate = sdf.parse(birthStr);
    28 //        System.out.println(birthDate);
    29         //今天的日期
    30         Date now = new Date();
    31         
    32         /*
    33          * 今天的毫秒减去生日的毫秒差为:
    34          * 经过的毫秒
    35          */
    36         long time = now.getTime()-birthDate.getTime();
    37 //        System.out.println(time);
    38         
    39         //将经过的毫秒转换为天
    40         time /= 1000*60*60*24;
    41     
    42         System.out.println("恭喜您,已经活了"+time+"天!请继续保持!");
    43     }
    44 }
    Test.java

    java.util.Calendar

    日历类,是一个抽象类,规定了操作时间的相关方法

    package day03;
    
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     * java.util.Calendar
     * 日历类,是一个抽象类,规定了操作时间的相关方法
     * 
     * 常用实现类:阳历历法GregorianCalendar
     * 
     * Calendar有一个静态方法可以根据所在地区获取
     * 相应的实现类。
     * @author adminitartor
     *
     */
    public class Calendar_GetInstance {
        public static void main(String[] args) {
            /*
             * static Calendar getInstance()
             * 该静态方法会根据系统所在地区获取一个适用
             * 的实现类,大部分是阳历类。
             * 并且默认表示当前系统时间。
             */
            Calendar calendar = Calendar.getInstance();
            /*
             * Calendar的实现类也重写toString了
             * 只是不能直观看出日期
             */
            System.out.println(calendar);
            /*
             * Calendar -> Date
             * Date getTime()
             * 该方法可以返回一个Date类型实例,该实例
             * 表示的日期就是当前Calendar所表示的日期
             */
            Date date = calendar.getTime();
            System.out.println(date);
            
            
            /*
             * Date -> Calenar
             * void setTime(Date date)
             * 该方法可是使当前Calendar表示给定的
             * Date所表示的日期
             */
            calendar.setTime(date);
            
            
            
        }
    }
    Calendar_GetInstance.java

    Calendar提供了一个可以获取指定时间分量所对应的值的方法

     1 package day03;
     2 
     3 import java.util.Calendar;
     4 
     5 /**
     6  * Calendar提供了一个可以获取指定时间分量所
     7  * 对应的值的方法:
     8  * int get(int field)
     9  * 参数为时间分量,无需记住具体取值,通常使用
    10  * Calendar提供的常量表示。
    11  * @author adminitartor
    12  *
    13  */
    14 public class Calendar_Get {
    15     public static void main(String[] args) {
    16         Calendar calendar 
    17             = Calendar.getInstance();
    18         
    19         //获取年?
    20         int year = calendar.get(Calendar.YEAR);
    21         
    22         //月从0开始,0表示1月。
    23         int month = calendar.get(Calendar.MONTH)+1;
    24         /*
    25          * 和日相关的常量:
    26          * DATE 月中的天 与DAY_OF_MONTH一致
    27          * DAY_OF_MONTH 月中的天(几号)
    28          * DAY_OF_WEEK 星期几
    29          * DAY_OF_YEAR 年中的天
    30          * 
    31          */
    32         int day = calendar.get(Calendar.DAY_OF_MONTH);
    33         
    34         System.out.println(year+"-"+month+"-"+day);
    35         
    36         //获取时分秒
    37         int h = calendar.get(Calendar.HOUR_OF_DAY);
    38         int m = calendar.get(Calendar.MINUTE);
    39         int s = calendar.get(Calendar.SECOND);
    40         System.out.println(h+":"+m+":"+s);
    41         
    42         //今天是今年的第多少天?
    43         int doy = calendar.get(Calendar.DAY_OF_YEAR);
    44         System.out.println("今天是今年的第"+doy+"天");
    45         
    46         //今天是周几?
    47         int dow = calendar.get(Calendar.DAY_OF_WEEK);
    48         String[] data = new String[]{"日","一","二","三","四","五","六"};
    49         
    50         System.out.println("今天是周"+data[dow-1]);
    51     
    52         /*
    53          * 获取给定时间分量所允许的最大值
    54          */
    55         int days = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
    56         System.out.println("今年共:"+days+"天");
    57         
    58         days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    59         System.out.println("当月共:"+days+"天");
    60     }
    61 }
    Calendar_Get.java

    Calendar允许对指定时间分量设置给定的值

    package day03;
    
    import java.util.Calendar;
    
    /**
     * Calendar允许对指定时间分量设置给定的值
     * @author adminitartor
     *
     */
    public class Calendar_Set {
        public static void main(String[] args) {
            Calendar calendar 
                = Calendar.getInstance();
            
            /*
             * 2008-08-08 20:08:08
             * 
             * void set(int filed,int value)
             * 针对给定的时间分量设置指定的值
             * 
             */
            //设置年
            calendar.set(Calendar.YEAR, 2008);
            System.out.println(calendar.getTime());
            
    //        calendar.set(Calendar.MONTH, 7);
            calendar.set(Calendar.MONTH, Calendar.AUGUST);
            
            calendar.set(Calendar.DAY_OF_MONTH, 8);
            
            calendar.set(Calendar.HOUR_OF_DAY, 20);
            
            calendar.set(Calendar.MINUTE, 8);
            
            calendar.set(Calendar.SECOND, 8);
            
            System.out.println(calendar.getTime());
            //设置周几
            calendar.set(Calendar.DAY_OF_WEEK, 2);
            System.out.println(calendar.getTime());
            //超范围后会进位
            calendar.set(Calendar.DAY_OF_MONTH, 32);
            System.out.println(calendar.getTime());
        }
    }
    Calendar_Set.java

    Calendar提供了用于计算日期的方法

    package day03;
    
    import java.util.Calendar;
    
    /**
     * Calendar提供了用于计算日期的方法:
     * void add(int field,int value)
     * 对指定时间分量加上给定的值,若给定的值是负数,
     * 则是减去。
     * @author adminitartor
     *
     */
    public class Calendar_Add {
        public static void main(String[] args) {
            Calendar calendar = Calendar.getInstance();
            /*
             * 三个月零25天以后是哪天?
             */
            //加上3个月
            calendar.add(Calendar.MONTH, 3);
            System.out.println(calendar.getTime());
            
            calendar.add(Calendar.DAY_OF_YEAR, 25);
            System.out.println(calendar.getTime());
            
            //设置为当周的周一
            calendar.set(Calendar.DAY_OF_WEEK, 2);
            System.out.println(calendar.getTime());
        }
    }
    Calendar_Add.java

    java.util.Collection

    集合,用于存储一组元素,与数组很像

    package day03;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    /**
     * java.util.Collection
     * 集合,用于存储一组元素,与数组很像。
     * 集合规定了很多便于操作集合元素的方法。
     * 
     * Collection有两个常用的子接口:
     * List:可重复集
     * Set:不可重复集
     * 重复与否指的是集合内部的元素,而元素是否重复取决
     * 与元素间equals比较的结果。
     * 
     * @author adminitartor
     *
     */
    public class Collection_Methods {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            /*
             * boolean add(E e)
             * 向当前集合中添加给定元素,若成功添加
             * 则返回true
             */
            c.add("one");
            c.add("two");
            c.add("three");
            c.add("four");
            System.out.println(c);
            
            /*
             * int size()
             * 获取集合的元素个数
             */
            System.out.println("size:"+c.size());
            
            /*
             * boolean isEmpty()
             * 判断当前集合是否不含有元素
             */
            System.out.println("isEmpty:"+c.isEmpty());
            
            /*
             * void clear()
             * 清空集合元素
             */
            c.clear();
            System.out.println("集合已清空!");
            System.out.println("size:"+c.size());
            System.out.println("isEmpty:"+c.isEmpty());
        }
    }
    Collection_Methods.java

    boolean contains(E e)

    判断当前集合是否包含给定元素

    package day03;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    import day02.Point;
    
    /**
     * boolean contains(E e)
     * 判断当前集合是否包含给定元素,判定标准是看给定
     * 元素与集合现有元素是否有equals比较为true的
     * @author adminitartor
     *
     */
    public class Collection_Contains {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            c.add(new Point(1,2));
            c.add(new Point(2,3));
            c.add(new Point(3,4));
            System.out.println(c);
            
            Point p = new Point(1,2);
    //        c.add(p);
            
            boolean contains = c.contains(p);
            System.out.println("包含:"+contains);
        }
    }
    Collection_Contains.java

    集合存放的是元素的引用

    package day03;
    
    import java.util.ArrayList;
    import java.util.Collection;
    
    import day02.Point;
    
    /**
     * 集合存放的是元素的引用
     * @author adminitartor
     *
     */
    public class CollectionDemo {
        public static void main(String[] args) {
            Collection c = new ArrayList();
            
            Point p = new Point(1,2);
            
            c.add(p);
            
            System.out.println("p:"+p);//(1,2)
            System.out.println("c:"+c);//[(1,2)]
            
            p.setX(2);
            
            System.out.println("p:"+p);//(2,2)
            System.out.println("c:"+c);//[(2,2)]
            
            
        }
    }
    CollectionDemo.java
  • 相关阅读:
    CentOS虚拟机和物理机共享文件夹实现
    集训第六周 数学概念与方法 概率 数论 最大公约数 G题
    集训第六周 数学概念与方法 概率 F题
    集训第六周 E题
    集训第六周 古典概型 期望 D题 Discovering Gold 期望
    集训第六周 古典概型 期望 C题
    集训第六周 数学概念与方法 UVA 11181 条件概率
    集训第六周 数学概念与方法 UVA 11722 几何概型
    DAG模型(矩形嵌套)
    集训第五周 动态规划 K题 背包
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/6224190.html
Copyright © 2011-2022 走看看