有哪个大佬帮我看一下程序,NoSuchElement异常

package rp;

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

/*编写一个Java应用程序,当用户在输入对话框中输入两个日期后

  • (日期格式为YYYYMMDD,如1999年1月12日应输入为19990112)

  • 程序将判断两个日期的先后顺序,以及两个日期之间的间隔天数

  • (例如1999年1月1日和1999年1月2日之间的间隔是1天*/
    public class 日期处理 {

    private Calendar a,b;

    public 日期处理() {}

    public 日期处理(Calendar a,Calendar b) {
    this.a = a;
    this.b=b;
    }

    //输入一个日期,将其形成Calendar对象
    public Calendar calendar_date(){

     Scanner cin=new Scanner (System.in);
     System.out.println("请输入一个日期:");
     String s=cin.next();
     cin.close();			
     
     Calendar calendar=Calendar.getInstance();//返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化
     Integer year=Integer.valueOf(s.substring(0, 4));
     Integer month=Integer.valueOf(s.substring(4, 6));
     Integer day=Integer.valueOf(s.substring(6, 8));
    
     calendar.set(Calendar.YEAR,year);
     calendar.set(Calendar.MONTH, month);
     calendar.set(Calendar.DAY_OF_MONTH, day);
    
     return calendar;
    

    }

// //求Calendar的毫秒
// public long getTimes(Calendar a) {
// long times=a.getTimeInMillis();
// return times;
// }
// //毫秒间隔天数
// public void cha(long times,long times2) {
// long days=Math.abs(times-times2)/(2460601000);
// System.out.println(“相差天数为”+days+“天”);
// }
//改进:二合一
public void days(Calendar a,Calendar b) {
long times=a.getTimeInMillis();
long times2=a.getTimeInMillis();
long days=Math.abs(times-times2)/(24
60601000);
System.out.println(“相差天数为”+days+“天”);
}

//判断日期顺序	
public void pd() {
	if(a.compareTo(b)<0)
		System.out.println(a+"在"+b+"之前");
	else if(a.compareTo(b)>0)
		System.out.println(a+"在"+b+"之后");
	else
		System.out.println("同一日期");
}

// if(date.equals(date2)) {
// System.out.println(“同一日期”);
//}else if(date.after(date2))
// System.out.println(date+“在”+date2+“之后”);
//else if(date.before(date2))
// System.out.println(date+“在”+date2+“之前”);

public static void main(String[] args){

	日期处理 deal= new 日期处理();
	Calendar a=deal.calendar_date();
	Calendar b=deal.calendar_date();

	日期处理 deal2= new 日期处理(a,b);
	deal2.pd();
	deal2.days(a, b);
}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值