一道JAVA编程题
编写一个Java应用程序,当用户在输入对话框中输入两个日期后(日期格式为YYYYMMDD,如1999年1月12日应输入为19990112),程序将判断两个日期的先后顺序,...
编写一个Java应用程序,当用户在输入对话框中输入两个日期后(日期格式为YYYYMMDD,如1999年1月12日应输入为19990112),程序将判断两个日期的先后顺序,以及两个日期之间的间隔天数(例如1999年1月1日和1999年1月2日之间的间隔是1天)。
展开
2个回答
展开全部
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 编写一个Java应用程序,当用户在输入对话框中输入两个日期后(日期格式为YYYYMMDD,
* 如1999年1月12日应输入为19990112),程序将判断两个日期的先后顺序,
* 以及两个日期之间的间隔天数(例如1999年1月1日和1999年1月2日之间的间隔是1天)。
*
* @author Administrator
*/
public class DateManipulation {
public static void main(String[] args ) {
BufferedReader in = null;
try {
// user input Date
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
in = new BufferedReader(new InputStreamReader(System.in));
String dateStr = in.readLine();
Date udate = sf.parse(dateStr);
// Current Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
Date curr = cal.getTime();
StringBuilder msg = new StringBuilder();
if (udate.before(curr))
msg.append("在本日之前: ");
else if (udate.after(curr))
msg.append("在本日之后");
System.out.println(msg.append(compareDate(udate, curr)));
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (in != null)
in.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
private static int compareDate(Date one , Date two ) {
return (one.getYear() - two.getYear()) * 365 + (one.getMonth() - two.getMonth()) * 30 + one.getDay() - two.getDay();
}
}
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 编写一个Java应用程序,当用户在输入对话框中输入两个日期后(日期格式为YYYYMMDD,
* 如1999年1月12日应输入为19990112),程序将判断两个日期的先后顺序,
* 以及两个日期之间的间隔天数(例如1999年1月1日和1999年1月2日之间的间隔是1天)。
*
* @author Administrator
*/
public class DateManipulation {
public static void main(String[] args ) {
BufferedReader in = null;
try {
// user input Date
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
in = new BufferedReader(new InputStreamReader(System.in));
String dateStr = in.readLine();
Date udate = sf.parse(dateStr);
// Current Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
Date curr = cal.getTime();
StringBuilder msg = new StringBuilder();
if (udate.before(curr))
msg.append("在本日之前: ");
else if (udate.after(curr))
msg.append("在本日之后");
System.out.println(msg.append(compareDate(udate, curr)));
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (in != null)
in.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
private static int compareDate(Date one , Date two ) {
return (one.getYear() - two.getYear()) * 365 + (one.getMonth() - two.getMonth()) * 30 + one.getDay() - two.getDay();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询