java+date+setdate替代_0228 JAVA 第四课 List、Set、Date

过个年,一个月没有学习Java,这星期补上。

作业:

1) 要求使用List

2) 要求使用Set

3) 要求了解Date、Calendar、SimpleDateFormat

输出当前时间,格式yyyyMMdd HHmmss

当前时间加N天

输出当前日期是年份、月份、周几,一年中第几天

日期比较

使用List 和 Set

Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。

Set接口主要实现了两个实现类:

•HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快

•TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。

LinkedHashSet:具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。

List的特征是其元素以线性方式存储,集合中可以存放重复对象。

List接口主要实现类包括:

ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与删除元素的速度慢。

LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。

public void studyList() {

System.out.println("------------List 开始-----------");

List list = new ArrayList();

list.add("zhangsan");

list.add("lisi");

list.add("wangwu");

list.add("lisi");

Iterator it = list.iterator();

while ( it.hasNext()) {

System.out.println(it.next());

}

System.out.println("------------List 结束------------");

}

public void studySet() {

System.out.println("------------set 开始------------");

Set set = new HashSet();

set.add("zhangsan");

set.add("lisi");

set.add("wangwu");

set.add("lisi");

Iterator it = set.iterator();

while ( it.hasNext()) {

System.out.println(it.next());

}

System.out.println("------------set 结束------------");

}

结果:

------------List 开始-----------

zhangsan

lisi

wangwu

lisi

------------List 结束------------

------------set 开始------------

wangwu

lisi

zhangsan

------------set 结束------------

字符串和日期 格式转换

public class HelloWorldFour {

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HHmmss");

/**

*

* printDate:将字符串-换成日期.

*

* @author qingqian

* @param today

* @return

* @throws ParseException

*/

public Date printDate(String today) throws ParseException {

return sdf.parse(today);

}

/**

*

* printDate:将日期格式-换成字符串.

*

* @author qingqian

* @param today

* @return

* @throws ParseException

*/

public String printDate(Date today) throws ParseException {

return sdf.format(today);

}

public static void main(String[] args) throws ParseException {

HelloWorldFour newWorld = new HelloWorldFour();

Date today = newWorld.printDate("20160304 115555");

System.out.println("字符串转换成日期:"+ today);

String todayStr = newWorld.printDate(new Date());

System.out.println("日期转换成字符串:" + todayStr);

}

}

结果:

字符串转换成日期:Fri Mar 04 11:55:55 CST 2016

日期转换成字符串:20160304 123943

日期加减

public void addDate() throws ParseException{

SimpleDateFormat sdft = new SimpleDateFormat("yyyyMMdd");

Calendar c = Calendar.getInstance();

System.out.println("当前时间:"+ sdft.format(c.getTime()));

c.add(Calendar.DATE, 1);//增加一天

c.add(Calendar.MONTH, 1);//增加一月

c.add(Calendar.YEAR, 1);//增加一年

System.out.println("增加1年1月1日:"+ sdft.format(c.getTime()));

c.set(Calendar.DATE, c.get(Calendar.DATE) - 5);

System.out.println("减去5天:"+ sdft.format(c.getTime()));

c.set(Calendar.DATE, c.get(Calendar.DATE) + 23);

System.out.println("再增加23天:"+ sdft.format(c.getTime()));

}

结果:

当前时间:20160304

增加1年1月1日:20170405

减去5天:20170331

再增加23天:20170423

获取日期中年、月、日,一年中第几天、一月中第几天、星期几等信息

/**

*

* printYMD:获取日期中年、月、日,一年中第几天、一月中第几天、星期几等信息

*

* @author qingqian

* @param today

* @throws ParseException

*/

public void printYMD(String today) throws ParseException{

Calendar c = Calendar.getInstance();

c.setTime(sdf.parse(today));

System.out.println("当前时间:"+ c.getTime());

System.out.println("当前年份:"+ c.get(Calendar.YEAR));

//从0开始,所以加1

int month=c.get(Calendar.MONTH)+1;

System.out.println("当前月份:"+ month);

System.out.println("当前日期:"+ c.get(Calendar.DATE));

System.out.println("当前日在月中是第几天:"+ c.get(Calendar.DAY_OF_MONTH));

System.out.println("当前日是星期几:"+ c.get(Calendar.DAY_OF_WEEK));

System.out.println("当前日在年中是第几天:"+ c.get(Calendar.DAY_OF_YEAR));

}

public static void main(String[] args) throws ParseException {

HelloWorldFour newWorld = new HelloWorldFour();

newWorld.printYMD("20160204 115555");

newWorld.printYMD("20160404 115555");

}

结果:

当前时间:Thu Feb 04 11:55:55 CST 2016

当前年份:2016

当前月份:2

当前日期:4

当前日在月中是第几天:4

当前日是星期几:5

当前日在年中是第几天:35

当前时间:Mon Apr 04 11:55:55 CST 2016

当前年份:2016

当前月份:4

当前日期:4

当前日在月中是第几天:4

当前日是星期几:2

当前日在年中是第几天:95

日期比较

public void compareDate(String d1, String d2) throws ParseException {

Date date1 = sdf.parse(d1);

Date date2 = sdf.parse(d2);

int num = date1.compareTo(date2);

if (num > 0) {

System.out.println(d1+ "大于"+ d2);

} else {

System.out.println(d1+ "小于"+ d2);

}

boolean flaga = date1.after(date2);

if (flaga == true) {

System.out.println(d1+ "大于"+ d2);

}else {

System.out.println(d1+ "小于"+ d2);

}

boolean flagb = date1.before(date2);

if (flagb == true) {

System.out.println(d1+ "小于"+ d2);

}else {

System.out.println(d1+ "大于"+ d2);

}

}

public static void main(String[] args) throws ParseException {

HelloWorldFour newWorld = new HelloWorldFour();

newWorld.compareDate("20160304 115555", "20160104 115555");

newWorld.compareDate("20160104 115555", "20160204 115555");

}

结果:

20160304 115555大于20160104 115555

20160304 115555大于20160104 115555

20160304 115555大于20160104 115555

20160104 115555小于20160204 115555

20160104 115555小于20160204 115555

20160104 115555小于20160204 115555

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值