使用java在对日历进行打印
创始人
2024-12-29 11:23:01
0次
//引入Scanner类,用于从控制台输入年月
import java.util.Scanner;
//程序开始
class Rili{
 //主方法,程序执行的入口
 public static void main(String[] args){
 
 inputYearAndMonth();
 }
 /**
 *此方法用于从控制台输入年、月 
 **/
 public static void inputYearAndMonth(){
 
 Scanner sc = new Scanner(System.in);
 System.out.println("请输入年");
 int year = sc.nextInt();
 System.out.println("请输入月");
 int month = sc.nextInt();
 
 printRiLi(year , month);
 
 }
 
 /**
 * 打印日历
 **/
 public static void printRiLi(int year,int month){
 //一周七天,定义一个计数器,打印一天加1(包括空白)如果%7等于0的话就需要换行
 int count = 0;
 System.out.println("\t---下面打印的是:"+year+"年"+month+"月的日历表---");
 System.out.println();
 System.out.println("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日");
 for(int i = 1;i <= getSpace(year,month);i++){
 
 System.out.print("\t");
 count +=1;
 }
 for(int i = 1;i <= getDaysOfMonth(year ,month);i++){
 
 System.out.print(i+"\t");
 count +=1;
 if(count % 7 ==0){
 System.out.println(); 
 }
 }
 
 }
 
 
 /**
 *判断年份是平年还是闰年(用于判断一年有365天或366天,并用于判断2月有28天或29天),返回值是true(29天、366天)和flase(28天、365天)
 **/
 public static boolean isLoopYear(int year){
 
 return (year %4 ==0 && year % 100 !=0) || (year % 400 == 0);
 }
 
 /**
 * 获得某月的天数
 **/
 public static int getDaysOfMonth(int year ,int month){
 
 int days = 0;
 switch(month){
 case 1:
 case 3:
 case 5:
 case 7:
 case 8:
 case 10:
 case 12:
 days = 31;
 break;
 case 4:
 case 6:
 case 9:
 case 11:
 days = 30;
 break;
 case 2:
 days = isLoopYear(year)? 29:28;
 break;
 }
 return days;
 }
 
 /**
 * 获得自1900年至当前年、月经过的总天数
 * 实现:1900年到year - 1 年的总天数
 * 当年至month - 1 的总在数
 * 两个天数之和相加
 **/
 public static int getTotalDays(int year , int month){
 int daysofyear = 0;
 int daysofmonth = 0;
 for(int i = 1900;i < year;i++){
 
 daysofyear += isLoopYear(i)? 366:365;
 }
 for(int i = 1; i < month; i++){
 
 daysofmonth += getDaysOfMonth(year,i);
 }
 return daysofyear+daysofmonth;
 }
 
 /**
 * 利用总天数模7取余,得到所需要打印的空格数
 **/
 public static int getSpace(int year,int month){
 
 int allSpace = getTotalDays(year,month) % 7;
 return allSpace;
 }
}

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...