JAVA 9.19 (1) 日期Data类与Calendar类,计算相隔天数,创造一个日历

关于日期 Date 类与 Calendar类

-__ 均属于java.util类__

  • Date类:创造Date类并输出当前时间Date nowTime = new Date(); System.out.print(nowTime);
    或者在这里插入图片描述
  • Calendar类 通过特定方法初始化对象Calendar calendar = Calendar.getInstance();
  • 调用方法设置时间在这里插入图片描述
  • 通过get获取年份,月份等(0代表1月),而年日不是0代1,DAY_OF_WEEK相反7代表星期6,2代表星期1。
  • 计算相隔天数
  • 在这里插入图片描述
    以上多个应用方法例子:
package text83_DateInterval;
import java.util.*;
//注意 通过args传参只能在DOS中 很蠢
public class DateInterval {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int year1,year2,month1,month2,day1,day2;
		int [] a = new int[3];	//注意初始化
		int [] b = new int[3];
		for(int i=0;i<args.length;i++) {//用main方法的参数读入数据
			a[i] = Integer.parseInt(args[i]);	//String转整数,注意类方法
		}
		for(int x=0;x<args.length;x++) {
			b[x] = Integer.parseInt(args[x]);
		}
		year1 = a[0];
		month1 = a[1];
		day1 = a[2];
		year2 = b[0];
		month2 = b[1];
		day2 = b[2];
		Calendar date1 = Calendar.getInstance();//创建并初始化一个日历对象
		date1.set(year1, month1-1,day1);	//设置时间
		Calendar date2 = Calendar.getInstance();
		date2.set(year2, month2-1,day2);
		long time1 = date1.getTimeInMillis();//表示从1790-1-1 00:00:00
		long time2 = date2.getTimeInMillis();//到当前时间总共经过的时间的毫秒数
		long dateInterval = (time2-time1)/(1000*60*60*24);//转换为天数
		System.out.println(new Date(time1)+"与"+new Date(time1)+"相隔"+dateInterval+"天");
		//应用java.util.Date类和匿名类结合表示时间
		//其中new Date(time1)表示“公元后”毫秒数,故与getTimeInMills相对应
	}

}

  • 创造一个日历,2022年6月
  • 主类
package calandar_rili;

public class Rili {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CalendarBean cb = new CalendarBean();
		cb.setYear(2022);
		cb.setMonth(6);
		String []a = cb.getCalendar();//接收整理好的数组
		char []str = "日一二三四五六".toCharArray();
		for(char c:str) {
			System.out.printf("%3c",c);
		}
		for(int i=0;i<a.length;i++) {//正常输出整理好的数组
			if(i%7==0)
				System.out.println("");
			System.out.printf("%3s", a[i]);
		}
	}
}

  • CalendarBean类
package calandar_rili;
import java.util.*;
public class CalendarBean {
	int year = 0,month = 0;
	public void setYear(int year) {
		this.year = year;
	}
	public void setMonth(int month) {
		this.month = month;
	}
	public String[] getCalendar() {
		String[] a = new String[42]; // 7的倍数,且需要上下2行留出空白
		Calendar rili = Calendar.getInstance();
		rili.set(year,month-1, 1);//Calendar中0代表1月。
		int weekDay = rili.get(Calendar.DAY_OF_WEEK)-1;//计算1号星期几,2代表星期1
		int day = 0 ;//需要用到的日期
		if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
			day = 31;
		if(month==4||month==6||month==9||month==11)
			day = 30;
		if(month==2) {
			if(((year%4==0)&&(year%100!=0))||year%400==0)
				day = 29;
			else 
				day = 28;
		}
		for(int i=0;i<weekDay;i++)
			a[i]=" ";//用i作为标记,从0开始,没到1号的星期时输出空白
		for(int i=weekDay,n=1;i<weekDay+day;i++) {
			a[i] = String.valueOf(n);
			n++;//i代表星期,n代表日期,1和前面算的星期对上,然后把日期放在数组内
		}
		for(int i=weekDay+day;i<a.length;i++)
			a[i] = " ";//补完日历表日期走完后剩下的空白,另输出矩阵完整
		return a;
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值