public class Test9 {
public static void main(String[] args) throws Exception{
System.out.println("开始输入日期");
int month=0,day=0;
long year=0;
//键盘录入日期
BufferedReader br=
new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
//将字符串用“-”切割后,将每个元素转为基本数据类型
String[] str=s.split("-");
year=Long.parseLong(str[0]);//年份
month=Integer.parseInt(str[1]);//月份
day=Integer.parseInt(str[2]);//日期
if(month>12)
throw new RuntimeException("输入的月份有误");
if(day>31)
throw new RuntimeException("输入的日期有误");
//调用Day方法算出天数
System.out.println(year+"年"+month+"月"+day+"日");//按要求输出
System.out.println("第"+Day(year,month,day)+"天");//按要求输出
WeekDay(s);//调用方法计算星期几
br.close();//关闭流资源
}
@SuppressWarnings("deprecation")
public static void WeekDay(String day){
String []str={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");//将模式封装到对象中
Date d=new Date();
try{
d=df.parse(day);
}catch(ParseException e){
e.printStackTrace();//对异常进行简单处理
}
for(int i=0;i<str.length;i++){
if(d.getDay()==(i)){//找出是星期几
System.out.println(str[i]);
}
}
}
public static int Day(long year,int month,int day){
int dateSum1=0;//定义变量记录每月的天数
for(int i=1;i<month;i++){
switch(i){
case 1:case 3:case 5:case 7:case 8:case 10:
case 12:dateSum1+=31;//1、3、5、7、8、10、12月为31天
break;
case 4:case 6: case 9 :case 11:dateSum1+=30;//4、6、9、11月30天
break;
case 2:
//判断是否为闰年,是加上29,不是加上28
if(((year%4==0)&(year%100!=0))|(year%400==0)|dateSum1<30){
dateSum1+=29;
}else{
dateSum1+=28;
}
}
}
return dateSum1+day;
}
|
|