package com.yc.wnl;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
import com.yc.ycutil.DateUtil;
//用于输出用户要求的年月对应的表格
public class CalendarTest {
public static void main(String[] args) {
///万年历的进化版
//1、这个月的一号是在哪一天
//2、这个月由多少天可以
Scanner sc=new Scanner(System.in);
System.out.println("请输入相应的年份");
int year=sc.nextInt();
System.out.println("请输入相应的月份");
int month=sc.nextInt();
//获得当前的日期
Calendar cc=Calendar.getInstance();
//需要重新设置Canlendar 下的month是从0-11 的
cc.set(year, month-1, 1);
//获得这个时间是这个周第几天
int dayofweek=cc.get(Calendar.DAY_OF_WEEK)-1;
System.out.println(dayofweek);
//求当前这个月由多少天
//下个月的一号 减去1天就回到了前一个月的最后一天 哪一天也就是表示着这个月由几天
cc.add(Calendar.MONTH,1);//月份加1
cc.add(Calendar.DATE,-1);//天数减1
int days=cc.get(Calendar.DATE);//获得了这个月份的天数
//取出今天的日期
DateUtil du=new DateUtil();
du.setFormat("yyyy年M月d日");
String todaystr=du.formatDate(new Date());
System.out.println(todaystr);
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
for(int i=1;i<=dayofweek;i++){
System.out.print("\t");
}
// System.out.println("1");
for(int i=1;i<=days;i++){
System.out.print(i+"\t");
if((i+dayofweek)%7==0){
System.out.println();
}
}
}
}
package com.yc.ycUtil;
//该类通过使用DateFormat 和 Date 输出指定形式的时间
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
private String format;
private DateFormat dateformat;
//设置输出形式
public void setFormat(String format){
this.format=format;
dateformat=new SimpleDateFormat(format);
}
//输出 由Date输出字符串
public String formatDate(Date date){
return dateformat.format(date);
}
//由字符串输出Date
public Date dateParse(String format) throws Exception{
return dateformat.parse(format) ;
}
//测试!!
public static void main(String[] args) {
DateTest dt=new DateTest();
dt.setFormat("yyyy-MM-dd");
Date date=new Date();
System.out.println(dt.formatDate(date));
System.out.println();
}
}