import java.util.*;
import java.text.*;
class Two
{
public static void main(String[] args)
{
System.out.println("*****请输入日期(格式:2016-01)*****");
Scanner sc = new Scanner(System.in);
String scStr = sc.next();
//****** 提取星期 年 月
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Date date = new Date();
try{
date = sdf.parse(scStr); //输入的字符串转换成日期
}catch(ParseException e){
}
SimpleDateFormat sdfE = new SimpleDateFormat("E");
String dE = sdfE.format(date); //输入的月份1号 是星期几
SimpleDateFormat sdfY = new SimpleDateFormat("yyyy");
String dY = sdfY.format(date); //提取年
SimpleDateFormat sdfM = new SimpleDateFormat("MM");
String dM = sdfM.format(date); //提取月
//****** 将 年 月转换为数字
int month = 0; //接收字符串转数字
int year = 0;
try{ //捕捉异常处理
year = Integer.parseInt(dY);
month = Integer.parseInt(dM);
}catch(NumberFormatException e){}
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
calendar(dE,31);
break;
// 30天
case 4:
case 6:
case 11:
calendar(dE,30);
break;
// 28 或 29天的
case 2:
if(year%4==0 && year%100!=0){
calendar(dE,29);
}else {
calendar(dE,28);
}
break;
default:
break;
}
}
public static void calendar(String e,int n){
int a = 0;
if(e.equals("星期日")){
a = 0;
} else if(e.equals("星期一")){
a = 1;
}else if(e.equals("星期二")){
a = 2;
}else if(e.equals("星期三")){
a = 3;
}else if(e.equals("星期四")){
a = 4;
}else if(e.equals("星期五")){
a = 5;
}else if(e.equals("星期六")){
a = 6;
}
for(int k = 1; k <= a+n; k++){
if(k<=a){
System.out.print("*\t");
}else {
System.out.print(k-a+"\t");
}
if(k%7==0){
System.out.println();
}
}
}
}
相关文章
- 如何使用`String`而不是`Date`类型来验证日期?
- java 日期(Date),日历(Calendar),格式化(DateFormat)使用方法
- JAVA中日期类Date、日历类Calendar、DateFormat类
- Java可视化日历(Date类、DATe Format类、Calendar类综合运用),开发可视化日历小程序
- JAVA中日期类Date、日历类Calendar、DateFormat类
- java 日期(Date),日历(Calendar),格式化(DateFormat)使用方法
- 常用类--Date日期类,SimpleDateFormat日期格式类,Calendar日历类,Math数学工具类,Random随机数类
- 运用Date日期来做日历