日常练习,根据输入的年月获取当月的日历

来源:互联网 发布:努努书坊软件下载 编辑:程序博客网 时间:2024/06/09 20:21
package test;import java.util.*;/** * 输入年月,返回当月的日历 * @author asus * */public class MonthTest {     public static void main(String[] args) {           Scanner in = new Scanner(System. in);           System. out.println( "请输入年份" );            int year = in.nextInt();           System. out.println( "请输入月份" );            int month = in.nextInt();            long sum = 0; //sum可能会是个大数这里用long型保存比较好            int u = 0; //用来保存当月的天数            boolean leapYear = false; //标志位,是否闰年的标志            //计算从1900年到输入的年份(不含当年)之间的天数            for ( int i = 1900; i < year; i++) {                 //区分当年是否是闰年                 if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {                     sum += 366;                     leapYear = true;                } else {                     sum += 365;                     leapYear = false;                }           }            //计算从1月份到输入的月份(不含当月)之间的天数            for ( int I = 1; I < month; I++) {                 if (I == 2) {                      if (leapYear) {                           sum += 29;                     } else {                           sum += 28;                     }                } else if (I == 4 || I == 6 || I == 9 || I == 11) {                     sum += 30;                } else {                     sum += 31;                }           }            /*            * sum+=7; System.out.println("1900年1月1日到2016年5月7日一共:"+sum+"天");            * System.out.println("2016年5月7日为星期"+sum%7);            */            //计算输入的年月的上一个月的最后一天是周几            long wekday = sum % 7;           System. out.println( "日\t一\t二\t三\t四\t五\t六" );            //使用/t占位,找到输入的月份的第一天的位置            for ( int i = 0; i <= wekday; i++) {                System. out.print( "[]\t");           }            //获取输入月份的天数            if (month == 2) {                 if (leapYear) {                     u = 29;                } else {                     u = 28;                }           } else if (month == 4 || month == 6 || month == 9 || month == 11) {                u = 30;           } else {                u = 31;           }            //将当月的日期与星期对应            for ( int i = 1; i <= u; i++) {                sum++;                 if (sum % 7 == 6) {                     System. out.print(i + "\n");                } else {                     System. out.print(i + "\t");                }                           }     }}

0 0
原创粉丝点击