黑马程序员技术交流社区
标题:
编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输...
[打印本页]
作者:
lyz942698
时间:
2015-6-12 17:52
标题:
编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输...
用两种方法实现了一下,请大家多多指教,看哪种方法更好一些。
方法一:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Test9 {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
System.out.println("请输入一个日期:");
SimpleDateFormat formatYMD = new SimpleDateFormat("yyyy-MM-dd");
String strdate = input.next();
System.out.println(getWeekDay(strdate));
Date date = null;
try {
date = formatYMD.parse(strdate);
System.out.println(isWhatDate(date));
} catch (ParseException e) {
e.printStackTrace();
}
}
// 获取周
public static String getWeekDay(String dateStr) {
SimpleDateFormat formatYMD = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formatD = new SimpleDateFormat("E");
Date date = null;
String weekDay = "";
try {
date = formatYMD.parse(dateStr);
weekDay = formatD.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return weekDay;
}
// 获取天
public static int isWhatDate(Date date) {
int dateSum = 0;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = format.format(date);
int year = Integer.valueOf(dateStr.substring(0, 4));
int month = Integer.valueOf(dateStr.substring(5, 7));
int day = Integer.valueOf(dateStr.substring(8, 10));
for (int i = 1; i < month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
dateSum += 31;
break;
case 4:
case 6:
case 9:
case 11:
dateSum += 30;
break;
case 2:
if (((year % 4 == 0) & (year % 100 != 0)) | (year % 400 == 0)) {
dateSum += 29;
} else {
dateSum += 28;
}
}
}
return dateSum = dateSum + day;
}
}
复制代码
方法二:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class Test9 {
public static void main(String[] args) {
System.out.print("请按“yyyy-MM-dd”的格式输入一个日期:");
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
String date=input.nextLine();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
try {
calendar.setTime(dateFormat.parse(date));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//calendar.add(Calendar.MONTH, 1);
int a = calendar.get(Calendar.DAY_OF_YEAR);
int b = calendar.get(Calendar.DAY_OF_WEEK);
System.out.print("这一天是");
switch(b){
case 1:System.out.print("星期日");
break;
case 2:System.out.print("星期一");
break;
case 3:System.out.print("星期二");
break;
case 4:System.out.print("星期三");
break;
case 5:System.out.print("星期四");
break;
case 6:System.out.print("星期五");
break;
case 7:System.out.print("星期六");
break;
}
System.out.println(",是一年中的第"+a+"天");
}
}
复制代码
作者:
java8023
时间:
2015-6-12 20:04
两种方法都不是很精简啊,代码那么多啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2