Calender类

概念

java.util.Calendar 是⽇历类,在Date后出现,替换掉了许多Date的⽅法。该类将所有可能⽤
到的时间信息封装为静态成员变量,⽅便获取。⽇历类就是⽅便获取各个时间属性的

获取⽅式

Calendar为抽象类,Calendar类在创建对象时并⾮直接创建,⽽是通过静态⽅
法创建,返回⼦类对象,如下:

Calendar静态⽅法
public static Calendar getInstance() :使⽤默认时区和语⾔环境获得⼀个⽇历

例如

import java.util.Calendar;
public class Demo06CalendarInit {
 public static void main(String[] args) {
 Calendar cal = Calendar.getInstance();
 } 
}

常⽤⽅法

1.public int get(int field) :返回给定⽇历字段的值。
2.public void set(int field, int value) :将给定的⽇历字段设置为给定值。
3.public abstract void add(int field, int amount) :根据⽇历的规则,为给定的⽇历
字段添加或减去指定的时间量。
4.public Date getTime() :返回⼀个表示此Calendar时间值(从历元到现在的毫秒偏移
量)的Date对象
Calendar类中提供很多成员常量,代表给定的⽇历字段:

字段值含义
YEAR
MONTH⽉(从0开始,可以+1使⽤)
DAY_OF_MONTH / DATE⽉中的天(⼏号)
HOUR时(12⼩时制)
HOUR_OF_DAY时(24⼩时制)
MINUTE
SECOND
DAY_OF_WEEK周中的天(周⼏,周⽇为1,可以-1使⽤)

get/set⽅法

get⽅法⽤来获取指定字段的值,set⽅法⽤来设置指定字段的值,代码使⽤演示:

public class CalendarUtil{
 public static void mian(String arg[]){
     //创建Calendar 对象
     Calendar cal=Calendar.getInstance();
     //设置年
     int year=cal.get(Calendar.YEAR);
     //设置月
     int month=cal.get(Calendar.MONTH)+1;
     //设置日
     int dayOfMonth=cal.get(Calendar.DAY_OF_MONTH);
     System.out.print(year + "年" + month + "⽉" + dayOfMonth + "⽇");
   }
}
import java.util.Calendar;
public class DemoCalendarMethod {
 public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        //设置月
        int month=cal.get(Calendar.MONTH)+1;
        //设置日
        int dayOfMonth=cal.get(Calendar.DAY_OF_MONTH);
        //设置年份为2020年
        cal.set(Calendar.YEAR, 2020);
        int year=cal.get(Calendar.YEAR);
        System.out.print(year + "年" + month + "⽉" + dayOfMonth + "⽇");
 }
}

add⽅法

add方法可以对指定日历字段的值进行加减操作,如果第二个参数为正数则加上偏移量,如果为负数则减去偏移量
例如

import java.util.Calendar;
public class DemoCalendarMethod {
 public static void main(String[] args) {
      Calendar cal = Calendar.getInstance();
        //设置月
        int month=cal.get(Calendar.MONTH)+1;
        //设置日
        int dayOfMonth=cal.get(Calendar.DAY_OF_MONTH);
        //设置年
        int year=cal.get(Calendar.YEAR);
        System.out.print(year + "年" + month + "⽉" + dayOfMonth + "⽇");
        System.out.println();
        //2021年7月26
        //使用add方法
        cal.add(Calendar.DAY_OF_MONTH,2);
        cal.add(Calendar.YEAR,-3);
        dayOfMonth=cal.get(Calendar.DAY_OF_MONTH);
        year=cal.get(Calendar.YEAR);
        System.out.print(year + "年" + month + "⽉" + dayOfMonth + "⽇");
        //2018年7月26日
 }
}

getTime⽅法

Calendar中的getTime⽅法并不是获取毫秒时刻,⽽是拿到对应的Date对象

import java.util.Calendar;
import java.util.Date;
public class Demo09CalendarMethod {
 public static void main(String[] args) {
 Calendar cal = Calendar.getInstance();
// Calendar --->Date
 Date date = cal.getTime();
 System.out.println(date); // Tue Jul 27 00:00:11 CST 2021
 //Date --> Calendar
 cal.setTime(date);
 System.out.println(cal);
 }
}

练习

输入一个生产日期格式"yyyy-MM-dd",再输入一个数字(保质期的天数)。
然后经过计算输出促销日期,促销日期为:该商品过期日前2周的周三

public class Demo {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
        //输入一个生产日期格式"yyyy-MM-dd",再输入一个数字(保质期的天数)。
        Calendar cal=Calendar.getInstance();
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个生产日期格式yyyy-MM-dd");
        String str = sc.nextLine();
        System.out.println("输入保质期天数");
        int num = sc.nextInt();
        //parse()   String ->Date
        Date date=sdf.parse(str);
        cal.setTime(date);
        cal.add(Calendar.DATE,num-14);
        cal.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY);
        Date date1=cal.getTime();
        System.out.println(date1);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值