题目要求:

本题要求实现一个方法,用户输入年代和月份,方法输出当月日历。

注:相关打印设置为:System.out.print(" "); //打印1号前的空档,空1天打印1次;

System.out.printf("%4d",i); //打印具体日期;

一个月打印完了以后换行。

在这里给出函数被调用进行测试的例子。例如:
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);int year=input.nextInt();int month = input.nextInt();printMonth(year, month);input.close();}public static void printMonth(int year, int month){printMonthTitle(year, month);printMonthBody(year, month);}public static void printMonthTitle(int year, int month){System.out.println("    "+getMonthName(month)+ "  " + year);System.out.println("-----------------------------");System.out.println(" Sun Mon Tue Wed Thu Fri Sat");}
/* 请在这里填写答案 */
}
public static void printMonthBody(int year, int month){int i,count = 0 ;int n =getStartDay(year, month);int m =getNumberOfDaysInMonth(year, month);//Print space,and make Sunday as the first day of a week.for( i=0;i<n;i++){if(n ==7)break;System.out.print("    ");count ++;}for(int day=1;day<=m;day++) {if(count==7) {System.out.print("\n");count = 0; }System.out.printf("%4d",day);count++;}}public static String getMonthName(int month) {// TODO Auto-generated method stubString str="January";switch(month) {case 1: str = "January";break;case 2: str = "February";break;case 3: str = "March";break;case 4: str = "April";break;case 5: str = "May";break;case 6: str = "June";break;case 7: str = "July";break;case 8: str = "August";break;case 9: str = "September";break;case 10: str = "October";break;case 11: str = "November";break;case 12: str = "Decmber";break;}return str;}private static int getStartDay(int year, int month){{if(month == 1||month == 2){month += 12; year--;}int week = (1 + 2*month + 3*(month+1)/5+year+year/4-year/100+year/400)%7;int weekstr = 0;switch(week){case 0: weekstr=1; break;case 1: weekstr=2; break;case 2: weekstr=3; break;case 3: weekstr=4; break;case 4: weekstr=5; break;case 5: weekstr=6; break;case 6: weekstr=7; break;}return weekstr;}}public static int getNumberOfDaysInMonth(int year, int month){  int days = 0;if ( isLeapYear (year) == true && month == 2)days = 29;else {days = 28;}switch (month){case 1: days = 31;break;
//      case 2: days = 28;break;case 3: days = 31;break;case 4: days = 30;break;case 5: days = 31;break;case 6: days = 30;break;case 7: days = 31;break;case 8: days = 31;break;case 9: days = 30;break;case 10: days = 31;break;case 11: days = 30;break;case 12: days = 31;break;default : break;}return days;}private static boolean isLeapYear (int year) {if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){  //平闰年判断算法return true;}else{return false;}}

输入示例:

2020
9

输出示例:

    September  2020
-----------------------------Sun Mon Tue Wed Thu Fri Sat1   2   3   4   56   7   8   9  10  11  1213  14  15  16  17  18  1920  21  22  23  24  25  2627  28  29  30

6-6 打印一个月的日历(日历) (30分)相关推荐

  1. php5.23升级,2018年5月5号23:30分对php的学后感

    学后感: 自从3月15号来到php中文网这个平台学习以后,经过一个半月多一点的学习,在3月15号之前我是一个对前段有点点了解html和css的小白,甚至说什么都不懂的情况下,在这一个都学的学习中,从学 ...

  2. 纯新手入门机器/深度学习自学指南(附一个月速成方案)

    原作:Masum Hasan 问耕 编译整理 量子位 出品 | 公众号 QbitAI 怎么入门机器/深度学习? 回答这个问题,最先要考虑的问题是:你有多少时间? 准备用三个月入门,和想要一个月速成,肯 ...

  3. 崩坏3服务器修改水晶数量,崩坏3一个月能攒多少水晶_单月水晶数量分析

    崩坏3是一款好玩的二次元动作类手游,很多玩家选择屯水晶来进行十连抽,那么崩坏3一个月能攒多少水晶呢,下面小编给大家带来崩坏3单月水晶数量分析,希望对大家有帮助. 崩坏3一个月能攒多少水晶: 1.无论新 ...

  4. 一年中最后一个月的最后一天说说_2020只剩最后一个月的励志说说致自己

    所有的努力,不是为了让别人觉得你了不起,而是为了能让自己打心眼里看得起自己.2021进入倒计时了,努力加油吧 1.面对困难.挫折.挑战只要你肯相信自己,不断努力的付出,哪怕你现在的人生是从零开始,你都 ...

  5. 到底是上班舒服还是上学舒服!上班一个月的感受!

    上学中 老师总会说当学生是最舒服的,以后工作的就会知道上学是多么好的一件事,而我却不这么认为,任何事情都不是绝对的! 今天是实习的一个月 上班的这一个月,早上8.30上班,下午6点下班,还有饭补,还可 ...

  6. java 月最后一个周日_java 获取上月、一个月最后一天、周一、周日、本月日期 【转】...

    获取上月: Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, -1); SimpleDateFormat format =  new ...

  7. sql查询近七天,近两周,近一个月的数据

    sql查询近一周,近两周,近一个月数据: ***注意:***DATE(此处是你需要查询的表中关于时间的字段名) ,INTERVAL后的数字可以改变,想查询几天数据就可以查询近几天数据.其他部分固定. ...

  8. 运用c++打印一个日历

    运用c++打印一个日历 题目:输入年份和月份,按照下列格式打印日历, 已知条件:1900年1月1日是星期一. 2021年3月 日 一 二 三 四 五 六 1 2 3 4 5 6 //- 28 29 3 ...

  9. c语言怎么做12一个月的日历,请问用C语言写日历怎样一行输入三个月啊。我是一个月一个月输入的,不会把二月输入到一月后面,求帮忙...

    qq_qzuser_605 #include<stdio.h> #include <windows.h> //判断是否是闰年,是返回1,否返回0 bool isLeap(int ...

最新文章

  1. 如何测量情感和感觉(以及它们之间的区别)?
  2. 企业电力征信大数据价值挖掘与应用
  3. jQuery学习之八---文档处理
  4. 第六次作业之图形界面
  5. redis scan 效率太慢_阿里云的redis规范
  6. Church's Coupon Performance Test Script
  7. 社交媒体与社会网络分析,深度解读社交网络营销
  8. SLAM学习 | 使用小觅相机MYNTEYE-S1030收集数据集
  9. c语言看门狗指令pic,PIC单片机之看门狗_看门狗定时器工作原理
  10. 数据结构PTA 进阶实验5-3.2 新浪微博热门话题(分离链接法 )
  11. 【推荐】git commit 规范和如何在 commit 里使用 emoji
  12. 【应用笔记】APM32F4xx_ADC应用笔记
  13. 一个微信公众号sdk(封装的比较全面)
  14. 如何在PS中将一张图片一次性裁剪保存成多张图片
  15. css编辑器推荐-Stylizer 与 Stylizer破解
  16. 目标函数(object function),损失函数(loss function)以及代价函数(cost function)之间的关系与区别
  17. 深度学习中,偏置(bias)在什么情况可以不要?
  18. c++一维数组找出五个数中的最大和最小值
  19. 求的带权图最小生成树的Prim算法和Kruskal算法
  20. 电脑系统重装win10的方法教程,win10系统重装教程

热门文章

  1. 个人UI总结与个人作品集
  2. pinterest images scrape(selenium实现)
  3. 联想笔记本电脑键盘灯怎么开启_联想笔记本电脑的键盘灯怎么开
  4. 用简单的例子解释量子纠缠
  5. android新浪微博demo登陆后注销再次登录一闪而过问题
  6. Vue路由与无痕浏览
  7. HTML 之 br 标签
  8. 达芬奇PRO板的FPGA功能学习笔记(一)
  9. 轻松淘金开发者杂谈:铺天盖地的调查问卷兼职项目,你做过吗?月入1-300
  10. python 使用随笔