6-6 打印一个月的日历(日历) (30分)
题目要求:
本题要求实现一个方法,用户输入年代和月份,方法输出当月日历。
注:相关打印设置为: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分)相关推荐
- php5.23升级,2018年5月5号23:30分对php的学后感
学后感: 自从3月15号来到php中文网这个平台学习以后,经过一个半月多一点的学习,在3月15号之前我是一个对前段有点点了解html和css的小白,甚至说什么都不懂的情况下,在这一个都学的学习中,从学 ...
- 纯新手入门机器/深度学习自学指南(附一个月速成方案)
原作:Masum Hasan 问耕 编译整理 量子位 出品 | 公众号 QbitAI 怎么入门机器/深度学习? 回答这个问题,最先要考虑的问题是:你有多少时间? 准备用三个月入门,和想要一个月速成,肯 ...
- 崩坏3服务器修改水晶数量,崩坏3一个月能攒多少水晶_单月水晶数量分析
崩坏3是一款好玩的二次元动作类手游,很多玩家选择屯水晶来进行十连抽,那么崩坏3一个月能攒多少水晶呢,下面小编给大家带来崩坏3单月水晶数量分析,希望对大家有帮助. 崩坏3一个月能攒多少水晶: 1.无论新 ...
- 一年中最后一个月的最后一天说说_2020只剩最后一个月的励志说说致自己
所有的努力,不是为了让别人觉得你了不起,而是为了能让自己打心眼里看得起自己.2021进入倒计时了,努力加油吧 1.面对困难.挫折.挑战只要你肯相信自己,不断努力的付出,哪怕你现在的人生是从零开始,你都 ...
- 到底是上班舒服还是上学舒服!上班一个月的感受!
上学中 老师总会说当学生是最舒服的,以后工作的就会知道上学是多么好的一件事,而我却不这么认为,任何事情都不是绝对的! 今天是实习的一个月 上班的这一个月,早上8.30上班,下午6点下班,还有饭补,还可 ...
- java 月最后一个周日_java 获取上月、一个月最后一天、周一、周日、本月日期 【转】...
获取上月: Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, -1); SimpleDateFormat format = new ...
- sql查询近七天,近两周,近一个月的数据
sql查询近一周,近两周,近一个月数据: ***注意:***DATE(此处是你需要查询的表中关于时间的字段名) ,INTERVAL后的数字可以改变,想查询几天数据就可以查询近几天数据.其他部分固定. ...
- 运用c++打印一个日历
运用c++打印一个日历 题目:输入年份和月份,按照下列格式打印日历, 已知条件:1900年1月1日是星期一. 2021年3月 日 一 二 三 四 五 六 1 2 3 4 5 6 //- 28 29 3 ...
- c语言怎么做12一个月的日历,请问用C语言写日历怎样一行输入三个月啊。我是一个月一个月输入的,不会把二月输入到一月后面,求帮忙...
qq_qzuser_605 #include<stdio.h> #include <windows.h> //判断是否是闰年,是返回1,否返回0 bool isLeap(int ...
最新文章
- 如何测量情感和感觉(以及它们之间的区别)?
- 企业电力征信大数据价值挖掘与应用
- jQuery学习之八---文档处理
- 第六次作业之图形界面
- redis scan 效率太慢_阿里云的redis规范
- Church's Coupon Performance Test Script
- 社交媒体与社会网络分析,深度解读社交网络营销
- SLAM学习 | 使用小觅相机MYNTEYE-S1030收集数据集
- c语言看门狗指令pic,PIC单片机之看门狗_看门狗定时器工作原理
- 数据结构PTA 进阶实验5-3.2 新浪微博热门话题(分离链接法 )
- 【推荐】git commit 规范和如何在 commit 里使用 emoji
- 【应用笔记】APM32F4xx_ADC应用笔记
- 一个微信公众号sdk(封装的比较全面)
- 如何在PS中将一张图片一次性裁剪保存成多张图片
- css编辑器推荐-Stylizer 与 Stylizer破解
- 目标函数(object function),损失函数(loss function)以及代价函数(cost function)之间的关系与区别
- 深度学习中,偏置(bias)在什么情况可以不要?
- c++一维数组找出五个数中的最大和最小值
- 求的带权图最小生成树的Prim算法和Kruskal算法
- 电脑系统重装win10的方法教程,win10系统重装教程