直接给个万年历你
import java.util.*;
public class Calender1{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("*****************欢迎使用万年历***********************");
System.out.println("\n请选择年份:");
int year = input.nextInt();
System.out.println("\n请选择月份:");
int month = input.nextInt();
//阶段1:判断是否为闰年
String yearMsg = "";
boolean isRun= false;
if(year%4==0&&year%100!=0||year%400==0){
isRun = true;
yearMsg = "闰年";
}
else{
yearMsg = "不是闰年";
}
//System.out.println(year + "\t" + yearMsg);
//阶段2:计算该月的天份
int day = 0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
if(isRun){
day = 29;
}
else{
day = 28;
}
}
// System.out.println(month+"\t共"+day+"天");
//阶段3:计算输入月份距离1900-1-1的总天数
//1、计算1900年到输入年份的前一年共有多少天
int totaDay1 = 0;
for(int i =1900;i
totaDay1 = totaDay1 + 366;
}
else{
totaDay1 = totaDay1 + 365;
}
}
//2、计算当年1月份到输入月份的前一个月共有多少天
int totaDay2 = 0;
int tempDay = 0;
for(int i= 1;i
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
tempDay = 31;
break;
case 4:
case 6:
case 9:
case 11:
tempDay = 30;
break;
case 2:
if(isRun){
tempDay = 29;
}
else{
tempDay = 28;
}
break;
}
totaDay2 = totaDay2 + tempDay;
}//计算总天数
int totaDay = totaDay1 + totaDay2;
// System.out.println("从1099-1-1到"+year+"年"+month+"月前的一个月共有"+totaDay+"天");
//阶段4:计算输入月份的第一天是星期几
int week;
int temp = 1 + totaDay % 7;
//调整
if(temp==7){
week=0;
}
else{
week=temp;
}
//System.out.println(year+"年"+month+"月的一号是星期"+temp);
// 阶段5:输出万年历
System.out.println("*****************欢迎使用万年历***********************");
System.out.print("\t"+"\t"+" "+year+"年"+"\t");
System.out.println(month+"月");
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
int space = 1;
// 输出空格
for(int i = 0;i
space++;
}
// 输出日期数
for(int i = 1;i<=day;i++){
System.out.print(i + "\t");
space++;
//满7天换行
if(space==8){
System.out.println();
space=1;
}
}
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class Cal {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Calendar cal = null;
try {
System.out.println("请输入年月日,格式:yyyy-MM-dd");
String dateStr = br.readLine().trim();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(dateStr);
cal = Calendar.getInstance(Locale.CHINA);
cal.setTime(date);
} catch (Exception e) {
System.out.println("输入错误,程序退出");
System.exit(-1);
}
System.out.println("您输入的时间是:" + cal.getTime() + ":" + weekDay(cal.get(Calendar.DAY_OF_WEEK)));
//六天的时间
for(int i=0; i<6; i++) {
cal.add(Calendar.DATE, 1);
System.out.println(i+1 + "天后是" + cal.getTime() + ":" + weekDay(cal.get(Calendar.DAY_OF_WEEK)));
}
}
private static String weekDay(int date) {
switch(date) {
case 1: return "星期天";
case 2: return "星期一";
case 3: return "星期二";
case 4: return "星期三";
case 5: return "星期四";
case 6: return "星期五";
case 7: return "星期六";
default:return "输入错误";
}
}
}
建议你去用commons-lang包下的DateUtils工具类,里面有能帮助你的工具
2楼回答的详细,1楼回答的也有道理,想自己实现就用2楼,想偷懒就有1楼
O(∩_∩)O~