JAVA输出日历(整合代码)
来源:互联网 发布:域名权重批量查询工具 编辑:程序博客网 时间:2024/06/10 05:17
①依靠算法实现:
public static void main(String[] args) { System.out.println("欢 迎 使 用 万 年 历"); Scanner input = new Scanner(System.in); System.out.print("\n请选择年份: "); int year = input.nextInt(); System.out.print("\n请选择月份: "); int month = input.nextInt(); System.out.println(); int days = 0; // 存储当月的天数 boolean isRn; /* 判断是否是闰年 */ if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) { // 判断是否为闰年 isRn = true; // 闰年 } else { isRn = false;// 平年 } /* 计算输入的年份之前的天数 */ int totalDays = 0; for (int i = 1900; i < year; i++) { /* 判断闰年或平年,并进行天数累加 */ if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) { // 判断是否为闰年 totalDays = totalDays + 366; // 闰年366天 } else { totalDays = totalDays + 365; // 平年365天 } } /* 计算输入月份之前的天数 */ int beforeDays = 0; for (int i = 1; i <= month; i++) { switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 2: if (isRn) { days = 29; } else { days = 28; } break; default: days = 30; break; } if (i < month) { beforeDays = beforeDays + days; } } totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数 /* 计算星期几 */ int firstDayOfMonth; // 存储当月第一天是星期几:星期日为0,星期一~星期六为1~6 int temp = 1 + totalDays % 7; // 从1900年1月1日推算 if (temp == 7) { // 求当月第一天 firstDayOfMonth = 0; // 周日 } else { firstDayOfMonth = temp; } /* 输出日历 */ System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"); for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo++) { System.out.print("\t"); // 输出空格 } for (int i = 1; i <= days; i++) { System.out.print(i + "\t"); if ((totalDays + i - 1) % 7 == 5) { // 如果当天为周六,输出换行 System.out.println(); } } }
②使用日历函数:
public static void main(String[] args) { String[] wd = { "日", "一", "二", "三", "四", "五", "六" }; Scanner s = new Scanner(System.in); P("请输入要查询的年份:"); int y = s.nextInt(); P("请输入月份:"); int m = s.nextInt(); GregorianCalendar g = new GregorianCalendar(y, m - 1, 1); P("\n星期\t"); for (int j = 0; j < wd.length; ++j) P(wd[j] + "\t"); // 星期日到星期一的字 P(); for (int j = 0; j < g.get(Calendar.DAY_OF_WEEK); ++j) P("\t"); // 补齐第一行的空格 int thisMonth = g.get(Calendar.MONTH); // 获取月份 for (int j = 1; j <= 31; ++j) { int d = g.get(Calendar.DAY_OF_MONTH); P(d + "\t"); // 输出日期,例如某月的一号 if (g.get(Calendar.DAY_OF_WEEK) == 7) { P("\n\t"); } // 如果当前天为星期六则回车 g.add(Calendar.DAY_OF_YEAR, 1); // 加一天 if (g.get(Calendar.MONDAY) != thisMonth) { // 判断目前天数为几月 P("\n\n"); break; } } } static void P(String s) { System.out.print(s); } static void P() { System.out.println(); }
0 0
- JAVA输出日历(整合代码)
- JAVA输出日历(整合代码)
- j2se日历输出(java日历)任意年份
- java 输出当月日历
- java输出当月日历
- Java 输出日历格式
- JAVA 输出日历
- java实现输出日历
- Java日历横向输出
- Java 输出日历格式
- Java输出日历
- 简单的日历输出代码
- java日历代码
- java 核心技术 日历代码
- java Calendar 按月输出日历
- Java 小日历格式输出 闰年计算
- Java-v8-v1ch04-CalendarTest 输出日历
- java程序打印输出本月日历
- R语言︱机器学习模型评价指标+(转)模型出错的四大原因及如何纠错
- git详解
- 程序员的自我修养_之一_曾国藩的正面与侧面
- 主机访问虚拟机上的web服务器
- AMD授权中国企业研制销售X86服务器芯片
- JAVA输出日历(整合代码)
- Android Studio编译报错
- 按钮动画
- 搭建自己的ngrok服务
- CSS
- 使用Unity3D的50个技巧:Unity3D最佳实践
- mysql的查询、子查询及连接查询
- RecyclerView添加EmptyView
- 专题二1020