packagecom.umf.hao;importjava.util.Calendar;importjava.util.GregorianCalendar;importjava.util.Scanner;/*** @ClassName: MyCalendarTable
* @description Java生成markdown格式日历
*@authorhaoprogrammer@hotmail.com
* @time 2020年2月27日 下午3:01:09*/
public classMyCalendarTable {public static voidmain(String[] args) {
Scanner scanner=newScanner(System.in);
System.out.print("");int year =scanner.nextInt();
System.out.print("");int month =scanner.nextInt();
System.out.println("## " + year + "年"+ month + "月日历如下:\n");
String heads[]= {"日期","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
tableHead(heads);//打印表格内容:
tableBody(year, month);
}/*** @Title: tableHead
* @Description: 打印日历头部
*@authorhaoprogrammer@hotmail.com
* @time 2020年2月26日 下午4:51:37
*@paramheads
*@return
*/
public static voidtableHead(String[] heads){//打印表格头
for(int i = 0;i < heads.length; i ++){
System.out.print("|" +heads[i] );
}//标题行结束
System.out.print("|\n");for(int i = 0;i < heads.length; i ++){
System.out.print("|-------");
}//markdown语法行结束
System.out.print("|\n");
}/*** @Title: tableBody
* @Description: 打印日历体正文
*@authorhaoprogrammer@hotmail.com
* @time 2020年2月26日 下午4:52:57
*@paramyear
*@parammonth
*@return
*/
public static void tableBody(int year, intmonth) {
GregorianCalendar cal=new GregorianCalendar(year ,month - 1,1);//对年份,月份,以及第一天来创建对象
int totalDays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);//获取该月份的天数
int startDay = cal.get(Calendar.DAY_OF_WEEK) - 1;//获取该月的第一天是星期几
System.out.print("| 日期 ");for(int i = 0;i < startDay;i ++) {
System.out.print("|-------"); //输出第一天前markdown语法
}for(int day = 1;day <= totalDays;day ++) {
System.out.print("| "+ day + " ");
startDay++;if(startDay % 7 == 0) { //每个星期输完换行
System.out.print("|\n");
System.out.print(makeString("已完成:") + "\n");
System.out.print(makeString("未完成:") + "\n");
System.out.print(makeString("需要沟通:") + "\n");
System.out.print(makeString("其他:") + "\n");
System.out.print("| 日期 ");
}if(day >=totalDays) {
System.out.print("\n" + makeString("已完成:") + "\n");
System.out.print(makeString("未完成:") + "\n");
System.out.print(makeString("需要沟通:") + "\n");
System.out.print(makeString("其他:") + "\n");
}
}
}/*** @Title: makeString
* @Description: 制作一行以key 开头的markdown字符串
*@authorhaoprogrammer@hotmail.com
* @time 2020年2月27日 下午2:45:58
*@paramkey
*@return
*/
public staticString makeString(String key) {
StringBuilder work= newStringBuilder();
work.append("|" +key);for(int i = 0; i < 8; i++) {
work.append("|-------");
}
work.append("|");returnwork.toString();
}
}