Java学习笔记_180711_常用类

1.Object类

Object类是java语言中所有类的根,所有的类都继承了Object类,拥有Object类的属性和方法。

1.1 clone()

返回对象的拷贝(克隆),对于基本类型会进行数值拷贝,对于引用类型只拷贝他的引用reference,也成为浅拷贝

1.2 equals(Object o)

判断当前对象与两外一个对象是否相等。未重写情况下不比较对象内容,只比较引用reference,未重写情况下与运算符“==”

*Math类

Math.round()整数四舍五入

负数5舍5.1入

*Calendar类

打印日历表

每周7天,一个月最多跨度6个星期,所以讲每个月天数放入int[6][7]的数组

行用Calendar.WEEK_OF_MONTH表示

列用Calendar.DAY_OF_WEEK表示

需要注意的是月份是从0开始的,Calendar.JANUARY=0;

星期的第一天是周日Calendar.SUNDAY=1,没有第0天

import java.util.Calendar;
import java.util.Scanner;


public class CalendarPrint {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int year = 1800;
		int month = 2;
		int day = 5;
		Scanner sc=new Scanner(System.in);
		
		System.out.print("输入年份: ");
		year=sc.nextInt();
		
		
		while(true){
			System.out.print("输入月份:");
			month=sc.nextInt();
			if(month<=12&&month>=1){
				break;
			}
			
			System.out.println("请输入1-12的整数!");
		}
		int maxdate = dayOfMonth(year,month);
		
		while(true){
			System.out.print("请输入日期:");
			day=sc.nextInt();
			if (day>=1&&day<=maxdate) {
				break;
			}
			System.out.println("超范围,请输入1-"+maxdate+"的数字!");
		}
		
		sc.close();
		
		Calendar cal=Calendar.getInstance();
		
		System.out.println();
		System.out.println("*************************************************************");
		//打印星期数
		String str=String.format("%1$-10s%2$-11s%3$-10s%4$-11s%5$-10s%6$-11s%7$-10s", "星期天","星期一","星期二","星期三","星期四","星期五","星期六");
		System.out.println(str);
		//创建日历数组
		int[][] dates= new int[6][7];
		
		//填充数组
		for(int i=1;i<=maxdate;i++){
			cal.set(year, month-1, i);
			int weekOfMonth=cal.get(Calendar.WEEK_OF_MONTH);
			int dayOfWeek=cal.get(Calendar.DAY_OF_WEEK);
			dates[weekOfMonth-1][dayOfWeek-1]=i;
		}
		//打印数组
		for(int i=0;i<dates.length;i++){
			for(int j=0;j<dates[i].length;j++){
				if(dates[i][j]!=0){
					if(dates[i][j]!=day)
						str=String.format("%1$-9d", dates[i][j]);
					else
						str=String.format("%1$-9s", dates[i][j]+"*");				
					
				}else {
					str=String.format("%1$-9s", "");
				}
				
				System.out.print(str);				
			}
			System.out.println();
		}
		System.out.println("*************************************************************");

	}
	
	static int dayOfMonth(int year,int month){
		int day=0;
		switch (month) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				day=31;
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				day=30;
				break;
			case 2:
				if((year%400==0)||((year%4==0)&&(year%100!=0)))
					day=29;
				else
					day=28;
				break;
			default:
				day = 0;
				break;
		}	
		
		return day;
	}
}

 

原文地址:https://www.cnblogs.com/annofyf/p/9292889.html