java程序日历_java日历的使用(Calendar)

Calendar类位于java.util下,是一个工具类,能够帮我们轻松的实现日期的查询和转换。

实例化:

Calendar有一个静态方法getInstance可以取得Calendar的实例,通过对实例的操作可以获得我们想要的数据。

Calendar calendar = Calendar.getInstance();//获得calendar的实例(new出一个当前日历)

获取常量:

Calendar的类里面定义了一系列的静态常量,包括:

public static final int ERA = 0;//

public static final int YEAR = 1;//年份

public static final int MONTH = 2;//月份,其中0为1月份,所以得到当前月份需要+1

public static final int WEEK_OF_YEAR = 3;//今年第几周

public static final int WEEK_OF_MONTH = 4;//当月第几周

public static final int DATE = 5;//Date型

public static final int DAY_OF_MONTH = 5;//当月第几天

public static final int DAY_OF_YEAR = 6;//当年第几天

public static final int DAY_OF_WEEK = 7;//星期几,从礼拜天开始算。

通过这些常量可以获得需要的信息:

Calendar calendar = Calendar.getInstance();

int year = calendar.get(Calendar.YEAR);

//打印信息为2014,其他信息的获取方法类似

方法:

set:

set(2014,03,02)设置日期为2014年4月2日(0为一月)

set(Calendar.MONTH,4) 月份修改成5月

get:

get(Calendar.YEAR)得到年份

setTime:

setTime(new Date())设置date型的时间

getTime()://得到date型的时间

add():对日期进行加减操作

例子:

Calendar calendar = Calendar.getInstance();

calendar.setTime(new Date());

calendar.add(Calendar.DATE,-1);//设置为前一天。calendar.add(Calendar.MONTH,-1)设置为前一个月

Date date = calendar.getTime();

//打印date:Thu Mar 13 21:27:57 CST 2014

long time = calendar.getTimeInMillis();

//打印time:1394717480989 单位为毫秒,可通过/(1000*60*60*24)换算为天,可用做计算两个日期相差几天。

格式化日期:

//设置格式化格式

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//HH为小写时为12小时制

String date= sf.format(new Date());

System.out.println(date);

//输出结果为:2014-03-13 21:37:34

计算两个日期相差天数:

Date方式:

public class CountTwoDateDiffer {

/**

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

* @param args

*/

public static void main(String[] args) {

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");

try {

Date startDate = sf.parse("2014-03-12");

long startTime = startDate.getTime();

Date endDate = sf.parse("2014-03-14");

long endTime = endDate.getTime();

int count = (int)(endTime - startTime)/(1000*24*60*60);

System.out.print(count);

} catch (ParseException e) {

e.printStackTrace();

}

}

}打印结果:2

Calendar方式:

public class CountTwoDateDiffer {

/**

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

* @param args

*/

public static void main(String[] args) {

Calendar calendar = Calendar.getInstance();

//插入日期

calendar.set(2014, 03, 12);

//得到毫秒数

long startTime = calendar.getTimeInMillis();

calendar.set(2014,03, 14);

long endTime = calendar.getTimeInMillis();

System.out.println("两个日期相差"+(endTime-startTime)/(1000*24*60*60)+"天");

}

}打印结果:两个日期相差2天

得到这个月最后一天的信息:

public class CalendarTest {

public static void main(String[] args) {

Calendar calendar = Calendar.getInstance();

//得到一个月最后一天,Date型

int last = calendar.getActualMaximum(Calendar.DATE);

//将最后一天的日期存入calendar

calendar.set(Calendar.DATE, last);

int weekDay = calendar.get(Calendar.DAY_OF_WEEK);

Date date = calendar.getTime();

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");

String day = sf.format(date);

//1表示星期日,2表示星期一

System.out.println("这个月最后一天是"+day+"星期"+(weekDay-1));

}

}

这个月最后一天是2014-03-31星期3

由此可以联想到,当我们Calendar calendar =  Calendar.getInstance();生成一个实例的时候,会默认放入一个date型的值,calendar.setTime(new Date())。然后我们通过set()改变其中的年,月,日。

某一天是星期几:

//1.

calendar.set(2014,03,20);//03设置的是4月份。

calendar.add(Calendar.MONTH,-1);//-1为3月

int weekDay = calendar.get(Calendar.DAY_OF_WEEK)-1;//星期天为1,所以要-1

//2.默认的是求当月20号是礼拜几

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.DATE,20);

int weekDay = calendar.get(Calendar.DAY_OF_WEEK);

//3.

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");

Date date = sf.parse("2014-03-20")

//首先要得到一个某一天的date类型

Calendar cl = Calendar.getInstance();

cl.setTime(date);

int dayOfweek = cl.get(Calendar.DAY_OF_WEEK)

我们都可以直接calendar.set(年,月,日);来对日期进行操作。比如说calendar.add(Calendar.DATE,-1);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值