精华内容
下载资源
问答
  • 输入年和月,自动打印对应年月日历。 补充知识: 1970年是Unix系统诞生的时间,所以人们把1970年定为Unix的元年,1970年1月1号是星期四。(这是计算机的一个参考值) 思路(仅供参考): 首先应该计算出这个月...

    问题:

    输入年和月,自动打印对应年月的日历。

    补充知识:

    1970年是Unix系统诞生的时间,所以人们把1970年定为Unix的元年,1970年1月1号是星期四。(这是计算机的一个参考值)

    思路(仅供参考):

    1. 首先应该计算出这个月1号是星期几。要想解决1号是星期几,就得先计算出年天数,即截至这一年1月1号的天数。
    2. 用for循环,从1970年开始,闰年+366,平年+365;计算出月天数,即截至本月1号的天数。
    3. 再用for循环,从1月份开始,算出月天数;再用到闰年判断,再用switch来判断返回月天数。
    4. 用年天数加月天数,求得本月1号距离1970年1月1号的总天数。
    5. 用总天数来判断本月1号是星期几。
    6. 判断本月的总天数(用到switch语句)。
    7. 打印输出日历。

     

    package workspace;
    
    import java.util.Scanner;
    
    public class calendar {
    	public static void main(String[] args) {
    		/**
    		 * 1.先在页面版上提示输入信息 2.利用for循环判断从1970年到这一年的1月1号的总天数(润平年)。
    		 * 3.再判断这年到该月份1号的天数,涵盖(if)润平年,确定1号星期几 4.确定这个月的天数(switch语句),然后开始打印
    		 */
    		// 信息输入
    		Scanner s = new Scanner(System.in);
    		try {
    			System.out.println("请输入年份:");
    			int year = s.nextInt();
    			System.out.println("请输入月份:");
    			int month = s.nextInt();
    			// 从1970.01.01开始天数累加
    			int daysum = 0;
    			for (int i = 1970; i < year; i++) {
    
    				if (i % 4 == 0 && i % 100 != 0 || i % 100 == 0 && i % 400 == 0) {
    
    					daysum += 366;
    				} else {
    					daysum += 365;
    				}
    			} // 这年到该月份1号的天数
    			for (int i = 0; i < month; i++) {// 常识
    				switch (i) {
    				case 1:
    				case 3:
    				case 5:
    				case 7:
    				case 8:
    				case 10:
    				case 12:
    					daysum += 31;
    					break;
    				case 2:
    					if (year % 4 == 0 && year % 100 != 0 || year % 100 == 0 && year % 400 == 0) {// 判断润平年
    						daysum += 29;
    					} else {
    						daysum += 28;
    					}
    					break;
    				default:
    					daysum += 30;
    					break;
    				}
    			}
    			int zhou = 1 + daysum % 7; // 判断该月1号星期几
    			int max = 0;// 开始这个月的天数
    			switch (month) {
    			case 1:
    			case 3:
    			case 5:
    			case 7:
    			case 8:
    			case 10:
    			case 12:
    				max += 31;
    				break;
    			case 2:
    				if (year % 4 == 0 && year % 100 != 0 || year % 100 == 0 && year % 400 == 0) {
    					max += 29;
    				} else {
    					max += 28;
    				}
    				break;
    			default:
    				max += 30;
    				break;
    			}
    			System.out.println("**************" + year + "年 " + month + "月*************");
    			System.out.println("一\t二\t三\t四\t五\t六\t日");
    			int day = 1;
    			for (int i = 0; i < 5; i++) {// 一个月的跨度最多5周
    				for (int j = 0; j < 7; j++) {// 一周只有7天
    					if (i == 0 && j < zhou) {// 没有值就空着,往下写
    						System.out.print("\t");
    						continue;
    					}
    					if (day > max) {// 超过天数就终止
    						break;
    					}
    					System.out.print(day + "\t");
    					day++;//天数累加,直到月天
    				}
    				System.out.println();// 打印完一行后换行
    			}
    		} catch (Exception e) {
    			System.out.println("输入的年份或者月份不符合规范!!!");
    		}
    	}
    

     输出样式:

    心得

          解决问题前一定要先分析问题,把大问题逐步分成小问题,理清逻辑,实现小问题的逻辑,整个问题就已经实现了百分之八十。

    不畏难,不强求!

     

    展开全文
  • import java.util.Scanner; public class Practice02 { ... //输入年月输出该月日历 Scanner input = new Scanner(System.in); int year,month,monthDay=0,sumDay=1,weekDay; System.out.print("请输入年份:");
    import java.util.Scanner;
    public class Practice02 {
        public static void main(String[] args) {
            //输入年月,输出该月日历
            Scanner input = new Scanner(System.in);
           int year,month,monthDay=0,sumDay=1,weekDay;
            System.out.print("请输入年份:");
            year = input.nextInt();
            for(int i=1900;i<year;i++){
                sumDay+=(i%4==0 && i%100!=0 || i%400==0)?366:365;
            }
    

    计算输入的年份前一年至1900年的总天数

    System.out.print("请输入月份:");
            month = input.nextInt();
            for(int i=1;i<=month;i++)
            switch(i){
                case 1: case 3: case 5:case 7: case 8: case 10:case 12:
                    monthDay = 31;
                    if(i<month){
                        sumDay+=monthDay;
                    }
                    break;
                case 4: case 6: case 9:case 11:
                    monthDay = 30;
                    if(i<month){
                        sumDay+=monthDay;
                    }
                    break;
                case 2:
                    monthDay = (year%4==0 && year%100!=0 || year%400==0)?29 : 28;
                    if(i<month){
                        sumDay+=monthDay;
                    }
                    break;
            }
            weekDay=(sumDay)%7;
    

    计算输入年份已过去的天数(不包括输入的当月份),并确定输入月的1号是星期几

    System.out.println("日\t一\t二\t三\t四\t五\t六");
            for(int i=0;i<weekDay;i++){
                System.out.print("\t");
            }
            for(int i=1;i<=monthDay;i++){
                System.out.print(i+"\t");
                if(sumDay%7==6){
                    System.out.println();
                }
                sumDay++;
            }
        }
    }
    

    先判断该月的具体天数,然后按照日历格式输出
    实现效果

    展开全文
  • 调用calendarUtil.getCalendar( )控制台输出当月日历
  • /* ... 输入一个时间如: 2016-11 就显示2016年11月的日历显示 */ import java.util.*; class calendar { public static void main(String[] args){ System.out.print("请选择...
    /*
    做日历作业:
           输入一个时间如: 2016-11
           就显示2016年11月的日历显示
    */
    
    import java.util.*;
    
    class calendar {
        public static void main(String[] args){
            
            System.out.print("请选择年份(大于1990年):");
            Scanner input = new Scanner(System.in);
            int year = input.nextInt();
            System.out.print("请选择该年的月份:");
            int month = input.nextInt();
            // 先判断year是否是闰年
            boolean Renyear;
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                System.out.println(year + "是闰年");
                Renyear = true;
            } else {
                System.out.println(year + "是平年");
                Renyear = false;
            }
            //记录当月的天数
            int day = 0;
            switch (month){
                case 1:
                    day = 31;
                    break;
                case 3:
                    day = 31;
                    break;
                case 4:
                    day = 30;
                    break;
                case 5:
                    day = 31;
                    break;
                case 6:
                    day = 30;
                    break;
                case 7:
                    day = 31;
                    break;
                case 8:
                    day = 31;
                    break;
                case 9:
                    day = 30;
                    break;
                case 10:
                    day = 31;
                    break;
                case 11:
                    day = 30;
                    break;
                case 12:
                    day = 31;
                    break;
                default:
                    if (Renyear) {
                        day = 29;
                    } else {
                        day = 28;
                    }
                    break;
            }
            System.out.println(year + "年" + month + "月" + "有" + day + "天" + "\t");
            System.out.println(month + "月份的日历如下:");
            // 从1990年到指定日期的天数,1990年1月1日为星期一。
            int sum = 0;
            for(int i = 1990;i < year; i++) {
                // 判断是否是闰年
                if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
                    sum = sum + 366;
                } else {
                    sum = sum + 365;
                }
            }
            // 统计月份的天数
            for (int i = 1; i < month; i++) {
                
                if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) { // 大月
                    sum = sum + 31;
    
                } else if (i == 4 || i == 6 || i == 9 || i == 11){  // 小月
                    sum = sum + 30;
                } else {
                     // 二月
                    if (Renyear) {
                        sum = sum + 29;
                    } else {
                        sum = sum + 28;
                    }
                }   
            }
         
            int blank = sum % 7 + 1;//blank开始输出的空格数 +1是从星期天开始;
            System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
             
            int temp = 1;
            for (int i = 0; i < blank; i++) {
                System.out.print("\t");
                temp++;
            }
            if (temp > 7){
                System.out.println("");
                temp = 1;
            }
            for (int i = 1; i <= day; i++) {
                if (temp % 7 == 0){
                    System.out.print(i + "\n");//控制换行
                    temp = 1;
                }
                else{
                    System.out.print(i + "\t");
                    temp++;
                }
            }
             
        }
    }

     

    转载于:https://www.cnblogs.com/Liang-Haishan216/p/6112350.html

    展开全文
  • 输入年月输出日历

    2019-03-11 17:15:16
    //输出日历 public static void printYear(int year,int month){ int day = getDays(year,month);// int week = getWeek(year,month);//计算本月1号是星期几 int count = 0; //计算本日是月第几天,默认开始...
    public static void main(String[] args){
        for(int i=1;i<13;i++){
    			printYear(2019,i);
    	}
    }
    //判断是否是闰年
    public static  boolean isRun(int year){
    		if(year%4==0&&year%400!=0){
    		   return true;
    		}else{
    		  return false;
    		}
    	}
    	//获取当前年月的天数
    	public static int getDays(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 2: days = isRun(year)? 29 :28;
    			     break;
    		    
    			case 4:
    			case 6:
    			case 9:
    			case 11: days=30;
    			    break;
    		}
    		return days;
    		
    	}
    	
        //输出日历
    	public static void printYear(int year,int month){
    		int day  = getDays(year,month);//
    		int week = getWeek(year,month);//计算本月1号是星期几
    		int count = 0;  //计算本日是月第几天,默认开始是周日,不管存不存在
    		System.out.println("\t\t\t    "+year+"年"+month+"月");
    		System.out.println("\t日\t一\t二\t三\t四\t五\t六");
    		for(int i=1;i<=day;i++){
    			if(i==1){
    				//需要空几格
    				for(int j=1;j<week;j++){
    					System.out.print("\t");
    				}
                    System.out.print("\t"+i);
                    count = week;
    				//System.out.print("["+count+"]");
    			}else{
    			    if(count%7==0){
    				    System.out.println();
    			    }
    				System.out.print("\t"+i);
    				count++;
    			}
    		}
    		System.out.println("\n\t==================================================");
    	}
    	
        //计算1号是星期几
    	public static int getWeek(int year,int month){
    		//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		Calendar cal = Calendar.getInstance();
    		cal.set(Calendar.YEAR,year);
    		cal.set(Calendar.MONTH,month-1);//月份范围是0~11,
    		cal.set(Calendar.DATE,1);
    		return cal.get(Calendar.DAY_OF_WEEK);
    		
    	}

     

    展开全文
  • JAVA——输出指定年月日历

    千次阅读 2018-09-07 16:56:44
    JAVA——输出指定年月日历 1.目的 输出一份当前所在时区当前时间的一个月的日历(1号到28/29/30/31号,以及每天对应为星期几) 2.语法 GregorianCalendar():用机器时间构造一个新对象。 ...
  • Java打印年月日历

    2019-06-12 13:36:53
    根据用户输入的年份和月份,在控制台打印出对应月份的日历。 二.算法讲解 要打印一个月的日历只需要知道两件事。 1.这个月第一天是星期几 本例子中,使用蔡勒公式,判断某年某月的一号是周几,关于蔡勒公式不了解的...
  • 主要介绍了Java实现按年月打印日历功能,涉及java基于Calendar进行日期运算的相关操作技巧,需要的朋友可以参考下
  • Java实现 蓝桥杯VIP 算法提高 任意年月日历输出

    万次阅读 多人点赞 2019-06-22 11:34:23
    算法提高 任意年月日历输出 时间限制:1.0s 内存限制:512.0MB 已知2007年1月1日为星期一。 设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印。 为完成此函数,设计必要的辅助函数...
  • 输入年月输出该月份的日历页: import java.util.Calendar;//导入Calendar类 import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in)...
  • 使用java编写的简单的日历表,可以根据年份和月份显示日历
  • 输入年月输出该月份的日历

    千次阅读 2017-04-28 12:30:42
    输入年月输出该月份的日历页 输入输出说明: 输入: 2017 2 输出: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
  • 1 //输入年份和月份,打印出这个月的日历表 2 /* 3 1.1900年1月1日是星期一 4 2.计算输入的年份距离1900年有多少天再计算当年1月1日距这个月有多少天 5 1) 6 3.总天数%7得出从星期几开始 7 注:计算机中...
  • import java.util.Scanner; public class rili { public static void main(String[] args) { for (int g = 0; g < 100; g++) { Scanner in = new Scanner(System.in); ...
  • java万年历,获取该年月日历表这篇文章应用java技术输入年份和月份获取该年月日历表,下面通过一段代码给大家做展示:输入年份和月份,打印出这个月的日历表1.1900年1月1日是星期一2.计算输入的年份距离1900年有多少...
  • 主函数:输入年、月,输出月份日历。 public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter full ...
  • 日历类之输入年月输出是星期几

    千次阅读 2018-08-23 11:28:54
    package 日历类; import java.util.Calendar; import java.util....public class 输入年月判断月份天数 {  public static void main(String[] args) {  Scanner input = new Scanner(System.in);  //通过C...
  • Java日历横向输出

    千次阅读 2016-07-29 13:59:58
    Java日历横向输出用了三种方法,第一种是将日历打印出来拼接为字符串,在用字符串操作方法对结果进行操作,比较杂乱,面向过程;第二种是将每个月保存在一个类里,在对这个类进行操作,面向对象,比较简洁,但是对类...
  • 原题是java老师前几天布置的一个课后作业,因为现在还正在学习java控制台下的输入输出操作,所以按原题交作业不难,可用正则表达式或者split()方法拆分用户在控制台下输入的字符串,再进行判断,看是否合理。...
  • java 日历显示 读出输入年月

    千次阅读 2013-12-02 17:01:54
    import java.awt.*; import java.awt.event.*; import java.util.Calendar;...class CalendarBean { //定义一个日历类 String day[]; //天数数组 int year = 2011, month = 9; //给定一个初始年月
  • java实现日历输出

    2021-05-18 19:51:15
    总体思路: 1.先利用menu()函数把总体的框架...import java.util.*; public class Main { public static void main(String[] args) { int [] index = new int[6]; //记录输入的年份月份字符串的每一位数字 int base

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,260
精华内容 904
关键字:

java输入年月输出日历

java 订阅