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; } }