java建立日历表
作者:互联网
1 建立日历表主要步骤
1.1 获取输入年距1900年1月1日(星期一)的天数。
1.2 判断输入月的第一天是星期几。
1.3 获取输入月的总天数。
1.4 生成日历表
2 代码
2.1 判断闰年 (能被4整除且不能被100整除或能被400整除)
static int text_1(int year) //判断闰年 是返回值为 1 { int q; //返回的值作为判断 if(year%4==0&&year%100!=0||year%400==0) { q=1; System.out.println("true"); return q; } else { q=0; System.out.println("false"); return q; }
2.2 判断输入月份(1,3,5,7,8,10,12月份是31天,4,6,9,11月份是20天,2 月份闰年29天平年28天)
static int text_2(int year, int p_month) // 判断月份的天数 { int y = text_1(year); // 定义 y 为 判断闰年的返回值 int month=0; switch (p_month) { case 2: { int n; n = (y == 1) ? 29 : 28; //判断 y=1时取29 否则取 28 month=n; } break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: month=31; break; case 4: case 6: case 9: case 11: month=30; break; default: System.out.println("输入月份错误!"); } System.out.println(month); return month; }
2.3 计算年天数
static int text_3(int year)//计算年距1900年的天数 { int all_year=0; for(int h=1900;h<year;h++) { int u=text_1(h); //调用判断 闰年 h 从1900开始 int i=(u==1)?366:365; //根据返回值判断 all_year+=i; //计算天数 } System.out.println(all_year); return all_year; }
2.4 计算月天数
static int text_4(int year,int month) //判断输入月前的天数 { int q = 0; int all_month=0; for(int t=1;t<month;t++) { q =text_2(year,t); //调用判断月份 all_month+= q; //计算天数 } System.out.println(all_month); return all_month; }
2.5 计算日历表排列规律并输出
static void text_5(int year,int month) { int n = text_2(year, month); //调用 判断月份 int m = text_3(year); //年天数 int k = text_4(year,month); //月天数 int all_day = m + k; //总天数 int month_firstday = all_day + 1; //输入月份的第一天 int week = month_firstday%7;//判断第一天是星期几(周一至周六:1~6 周天:0) int time=week;//判断第一天前的空间(星期值-1) if(time==0) { time=7; //当week=0时是星期天 } for(int u=0;u<time-1;u++) System.out.print( "\t\t");//输出空间 for(int y=1;y<=n;y++) { System.out.print(" "+y+"\t\t"); //输出月的天数 week=week%7; //判断星期 if(week%7==0) { System.out.println(" "); //星期天时换行 } week++; //星期值+1 } }
3 全部代码public class text {
static int text_1(int year) //判断闰年 是返回值为 1 { int q; //返回的值作为判断 if(year%4==0&&year%100!=0||year%400==0) { q=1; return q; } else { q=0; return q; } } static int text_2(int year, int p_month) // 判断月份的天数并返回 { int y = text_1(year); // 定义 y 为判断闰年的返回值 int month=0; switch (p_month) { case 2: { int n; n = (y == 1) ? 29 : 28; //判断 y=1时取29 否则取 28 month=n; } break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: month=31; break; case 4: case 6: case 9: case 11: month=30; break; default: System.out.println("输入月份错误!"); } return month; } static int text_3(int year)//计算年距1900天数 { int all_year=0; for(int h=1900;h<year;h++) { int u=text_1(h); //调用判断 闰年 h 从1900开始 int i=(u==1)?366:365; //根据返回值判断 all_year+=i; //计算天数 } return all_year; } static int text_4(int year,int month) //判断输入月前天数(输入的年内) { int q = 0; int all_month=0; for(int t=1;t<month;t++) { q =text_2(year,t); //调用判断月份 all_month+= q; //计算天数 } return all_month; } static void text_5(int year,int month) //计算天数排列规律并输出 { int n = text_2(year, month); //调用 判断月份 int m = text_3(year); //年天数 int k=text_4(year,month); //月天数 int all_day = m + k; //输入月前的总天数 int month_firstday = all_day + 1; //输入月份的第一天 int week=month_firstday%7;//判断第一天是星期几 int time=week;//判断第一天前的空间(星期值-1) if(time==0) { time=7; //当week=0是及星期天 } for(int u=0;u<time-1;u++) System.out.print( "\t\t");//输出空间
for(int y=1;y<=n;y++) { System.out.print(" "+y+"\t\t"); //输出月的天数 week=week%7; //判断星期 if(week%7==0) { System.out.println(" "); //星期天时换行 } week++; //星期值+1 } } public static void main(String[] args) { Scanner p=new Scanner(System.in); Scanner q=new Scanner(System.in); System.out.println("输入年份"); int w=p.nextInt(); System.out.println("输入月份"); int u=q.nextInt(); System.out.print("星期一\t"+"星期二\t"+"星期三\t"+"星期四\t"+"星期五\t"+"星期六\t"+"星期天\t"); System.out.println(""); text_5(w,u); } }
标签:case,java,建立,int,text,天数,month,日历表,year 来源: https://www.cnblogs.com/fcajchd/p/13976158.html