package Date;
import java.sql.*;
import java.text.*;
import java.util.Calendar;
public class TestDate {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/sa", "root", "root");
Statement state = con.createStatement();
ResultSet rs = state.executeQuery("select birthday from student");
while (rs.next()) {
Date date = rs.getDate("birthday");
// 把日期转换成XXXX年XX月XX日的形式,用SimpleDateFormat就行了
// SimpleDateFormat simp = new
// SimpleDateFormat("yyyy年MM月dd日星期F HH:mm:ss");
// System.out.println(simp.format(date));
// 获取date中的月份时,必须加一,因为月份索引是从0开始
Calendar cal = Calendar.getInstance();
cal.setTime(date);
System.out.println(cal.get(Calendar.YEAR) + "年"
+ (cal.get(Calendar.MONTH) + 1) + "月"
+ cal.get(Calendar.DAY_OF_MONTH) + "日");
}
rs.close();
state.close();
con.close();
}
}
/*a) 从命令行接受3个参数, 分别表示 年 月 日, 判断它们能不能构成一个合法的日期
b) 命令行参数都是字符串, 要转换为整型才能判断, 由于String是类, 不能直接用 (int)str 转换, 所以请按如下方式转换(这里假设输入的都是数字)
int year = Integer.parseInt(args[0]);
c) 年 应该在 1970~2050之间
d) 月 应该在 1~12之间
e) 日 应该在 1~当月天数之间
f) 难点是 2月日期的判断: 首先要判断年是平年还是闰年, 再判断该日期的合法性
g) 效果如下
*/
class Text {
public static void main(String[] args) {
int year=Integer.parseInt(args[0]);
int month=Integer.parseInt(args[1]);
int day=Integer.parseInt(args[2]);
boolean flag = false ;
if(year%4==0 && year%100!=0 || year%400==0) {
flag=true;
}
int lastday=28;
if(month==1 ||month==3 ||month==5 ||month==7 || month==8 || month==10 || month==12) {
lastday=31;
}
else if (month==4 ||month==6 ||month==9 ||month==11 ) {
lastday=30;
}
else if (flag=true) {
lastday=29;
}
if(year<1970 || year>2050) {
System.out.println ("It is a mistake year");
}
else if(month<1 || month>12) {
System.out.println ("It is a mistake month");
}
else if(day<0 || day>31) {
System.out.println ("It is a mistake day");
}
else {
System.out.println (year+"年"+month+"月"+day+"日");
}
}
}