第十次作业

 

1,简述String类中的equals方法与Object类中的equals方法的不同点。
Object类的equals比较的是两个对象的地址
String类的equals比较的是两个字符串的内容
2,编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几;

public static void main(String[] args) throws ParseException {
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入格式:“xxxx年xx月xx日”的日期");
    String str=sc.nextLine();
    SimpleDateFormat sun=new SimpleDateFormat("yyyy年MM月dd日");
    Date s=sun.parse(str);
    Calendar u=Calendar.getInstance();
    u.setTime(s);
    int year=u.get(Calendar.YEAR);
    int month=u.get(Calendar.MONTH)+1;
    int week=u.get(Calendar.DAY_OF_WEEK)-1;
    GregorianCalendar g=new GregorianCalendar();
    if (g.isLeapYear(year)) {
        System.out.println(year+"是闰年");
    }else {
        System.out.println(year+"不是");
    }
    int month_num=u.getActualMaximum(Calendar.DAY_OF_MONTH);
    if (week==0) {
        System.out.println("该月有"+month_num+"天,"+"该日是周日");
    }else {
        System.out.println("该月有"+month_num+"天,"+"该日是周"+week);
    }
}

3,计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。

public static void main(String[] args) throws ParseException {
    Scanner sc= new Scanner(System.in);
    System.out.println("请输入日期1:“xxxx-xx-xx”");
    String s=sc.nextLine();
    System.out.println("请输入日期2:“xxxx-xx-xx”");
    String u=sc.nextLine();
    SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
    Date n=sd.parse(s);
    Date n2=sd.parse(u);
    long i=0;
    if (n.after(n)) {
        i=n.getTime()-n2.getTime();
    }else {
        i=n2.getTime()-n.getTime();
    }
    long a=1000*60*60*24;
    long day=i/a;
    long week=day/7;
    
    System.out.println("两个日期相隔"+day+"天");
    System.out.println("相隔"+week+"周");
}

4,简述StringBuilder类与string类的区别
String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间
StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量 
5,计算自己出生了多少天?

public static void main(String[] args) throws ParseException {
//    获取出生日期
    Scanner sc=new Scanner(System.in);
    System.out.println("出生日期,格式:xxxx-xx-xx");
String s=sc.next();
//DateFormat类中方法parse,把字符串的出生日期,解析为Date格式
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
Date birthday=sd.parse(s);
//Dote格式出生日期转换毫秒值
long birthdaydateTime=birthday.getTime();
//当前日期转换毫秒值
long todayTime=new Date().getTime();
//毫秒值转换为天
long time= todayTime-birthdaydateTime;
System.out.println(time/1000/60/60/24);
}

6,求一个for循环 执行时间?

public static void main(String[] args) {
    int a=0;
    int x=10000;
    for (int i = 0; i <x; i++) {
        a=2*x;
    }
    System.out.println(a/10000);
}
posted @ 2020-10-27 11:53  何足介怀  阅读(101)  评论(0编辑  收藏  举报