JAVA打印markdown格式日历
最近使用了markdown写东西,写日历的时候复制粘贴一行一行费劲,写了个程序生成如下:
程序如下:
package com.umf.hao; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Scanner; /** * @ClassName: MyCalendarTable * @description Java生成markdown格式日历 * @author haoprogrammer@hotmail.com * @time 2020年2月27日 下午3:01:09 */ public class MyCalendarTable { public static void main(String[] args) { Scanner scanner=new Scanner(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: 打印日历头部 * @author haoprogrammer@hotmail.com * @time 2020年2月26日 下午4:51:37 * @param heads * @return */ public static void tableHead(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: 打印日历体正文 * @author haoprogrammer@hotmail.com * @time 2020年2月26日 下午4:52:57 * @param year * @param month * @return */ public static void tableBody(int year, int month) { 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字符串 * @author haoprogrammer@hotmail.com * @time 2020年2月27日 下午2:45:58 * @param key * @return */ public static String makeString(String key) { StringBuilder work = new StringBuilder(); work.append("|" + key); for(int i = 0; i < 8; i++) { work.append("|-------"); } work.append("|"); return work.toString(); } }
生成效果如下: