万年历

万年历_第1张图片万年历_第2张图片万年历_第3张图片万年历_第4张图片

import java.util.Scanner; public class 万年历_myself { /** * 判断是否闰年:能被4整除但不能被100整除:或者能被400整除. */ public static void main(String[] args) { Scanner input = new Scanner (System.in); System.out.print("请输入年份: "); int year = input.nextInt(); System.out.print("请输入月份: "); int month = input.nextInt(); int tian = 0 ; int zongtian = 0; int yueday = 0; int days = 0; /*计算当前年份中输入的月份到1月有多少天*/ for(int i = 1; i <= month-1; i++){ switch (i){ case 2: if(((year % 4 == 0 && !( year % 100 == 0)) || year % 400 == 0 && month == 2)){ tian = 29; }else {tian = 28;} break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: tian = 31; break; case 4: case 6: case 9: case 11: tian = 30; break; } yueday += tian; } /*计算从今年到1900年之间有多少年*/ for(int o = 1900; o < year; o++){ if(o % 4 == 0 && o % 100 != 0 || o % 400 == 0){ days += 366; }else{ days += 365; } } zongtian = yueday + days; //计算当天到1900年1月1号之间相差多少天 /*计算每个月有多少天*/ int day = 0; //初始化每个月的天数 switch (month){ case 2: if(((year % 4 == 0 && !( year % 100 == 0)) || year % 400 == 0 && month == 2)){ day = 29; }else {day = 28;} break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: day = 31; break; case 4: case 6: case 9: case 11: day = 30; break; } /*求出每个月的第一天*/ int firstmonth; int temp ; temp =1 + zongtian % 7; if(temp == 0){ firstmonth = 0; }else { firstmonth = temp; } /*输出日历*/ System.out.println("星期日/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六"); if (temp == 7){ }else{ for(int nullNo = 0; nullNo < firstmonth; nullNo++){ System.out.print("/t");//输出TAB符 } } for(int i = 1; i <= day; i++){ System.out.print(i+"/t"); if((zongtian + i - 1) % 7 == 5){ //如果当天为星期六.输出换行 System.out.println(); } } } }

记得当时写这个程序的时候,真的要喷血了,死了N个脑细胞.

你可能感兴趣的:(String,Class,input,import,日历)