精华内容
下载资源
问答
  • 输入年月,输出该月份的日历页: import java.util.Calendar;//导入Calendar类 import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in)...

    输入年月,输出该月份的日历页:

    import java.util.Calendar;//导入Calendar类
    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            Calendar calendar = Calendar.getInstance();//getInstance获取当前日期
            int y = input.nextInt(), m = input.nextInt()-1;
            calendar.set(y,m,1);//设置日期,默认为当月第一天
            int cnt = calendar.get(Calendar.DAY_OF_WEEK)-1;//返回设置的日期是当周的星期几
            for (int i = 0; i < cnt; i++) {
                System.out.printf("     ");
            }
            while(calendar.get(Calendar.MONTH) == m) {
                System.out.printf("%5d",calendar.get(Calendar.DAY_OF_MONTH));//输出是当个月的哪天
                cnt++;
                if(cnt%7==0) System.out.println();
                calendar.add(Calendar.DATE,1);//对日期加一天
            }
        }
    }
    
    

    在获取月份时,Calendar.MONTH + 1 的原因
    Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。

    在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因
    Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到 第一天是星期几 的影响。
    有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。

    展开全文
  • 本文实例讲述了Java实现按年月打印日历功能。分享给大家供大家参考,具体如下:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class...

    本文实例讲述了Java实现按年月打印日历功能。分享给大家供大家参考,具体如下:

    import java.text.ParseException;

    import java.text.SimpleDateFormat;

    import java.util.Calendar;

    import java.util.Date;

    public class CalendarBook {

    public static void main(String[] args) throws ParseException {

    CalendarBook cb = new CalendarBook();

    cb.printWeekTitle();

    cb.printCalendar(2018, 3);

    }

    public void printCalendar(int year, int month) throws ParseException {

    String monthStr; // 格式化月份,因为要转成yyyyMMdd格式的

    if (month < 10) {

    monthStr = "0" + month;

    } else {

    monthStr = month + ""; // 数字跟字符串拼接转成字符串格式

    }

    String yearMonthStr = year + monthStr;

    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

    Calendar calendarEnd = Calendar.getInstance();

    Calendar calendarStart = Calendar.getInstance();

    // 根据年份和月份得到输入月份有多少天

    int monthDays = getMonthLastDay(year, month);

    // 月初的date字符串

    String dateStartStr = yearMonthStr + "01";

    // 月末的date字符串

    String dateEndStr = yearMonthStr + monthDays;

    Date startDate = sdf.parse(dateStartStr);

    Date endDate = sdf.parse(dateEndStr);

    calendarStart.setTime(startDate);

    calendarEnd.setTime(endDate);

    // 得到输入月份有多少周

    int weeks = calendarEnd.get(Calendar.WEEK_OF_MONTH);

    // 得到当月第一天是星期几,这里周日为第一天,从1开始,周一则为2

    int dayOfWeek = calendarStart.get(Calendar.DAY_OF_WEEK);

    int day = 1;

    // 当月的第一周做特殊处理,单独打印一行

    for (int i = 1; i <= 7; i++) {

    if (i >= dayOfWeek) {

    System.out.print(" " + day + " ");

    day++;

    } else {

    System.out.print(" ");

    }

    }

    System.out.println();

    // 开始打印从第二周开始的日期

    for (int week = 1; week < weeks; week++) {

    for (int i = 1; i <= 7; i++) {

    if (day > monthDays) {

    break;

    }

    if (day < 10) {

    System.out.print(" " + day + " ");

    } else {

    System.out.print(day + " ");

    }

    day++;

    }

    System.out.println();

    }

    }

    public int getMonthLastDay(int year, int month) {

    int monthDay;

    int[][] day = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },

    { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };

    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

    // 闰年

    monthDay = day[1][month];

    } else {

    monthDay = day[0][month];

    }

    return monthDay;

    }

    public void printWeekTitle() {

    System.out.println("日" + " " + "一" + " " + "二" + " " + "三"

    + " " + "四" + " " + "五" + " " + "六");

    }

    }

    运行结果截图(运行效果,字体大小5号最佳):

    PS:这里再为大家推荐几款关于日期与时间计算的在线工具供大家参考使用:

    希望本文所述对大家java程序设计有所帮助。

    展开全文
  • "请输入月份" ); int month = sc.nextInt(); //初始化天数1900 System. out .println( "----------------------------------------------" ); System. out .println( " 星期天 星期一 星期二 星期三 星期四 ...

    代码

    //判断闰年平年
        public static Boolean isYear(int x){
            if(x%4==0&&x%100!=0){
                return true;
            }else{
                return false;
            }
        }
    //判断月数
        public static int getMonth(int y,int m){
            switch(m){
            case 2:
                if(isYear(y))return 29;
                else return 28;
            case 4:
            case 6:
            case 9:
            case 11:return 30;
            default:return 31;
            }
        }
    //从1900到现在的天数,返回是星期几
        public static int getDay(int a,int b){
            int startday = 0,weekday;
            for(int i=1900;i<a;i++){
                if(isYear(i)==true){
                    startday += 366;
                }else{
                    startday += 365;
                }
            }
            for(int j=1;j<b;j++){
                startday += getMonth(a,j);
            }
            weekday = (startday+1)%7+1;
            if(weekday%7!=0){
                for(int k=0;k<weekday;k++){
                    System.out.print("      ");
                }
            }
            for(int i=1;i<=getMonth(a, b);i++){
                System.out.printf("%6d",i);
                if((weekday+i-1)%7==6){
                    System.out.println();
                }
            }
            return weekday;
    
        }
    //主函数
    public static void main(String[] args) {
            System.out.println("请输入年份");
            Scanner sc = new Scanner(System.in);
            int year = sc.nextInt();
            System.out.println("请输入月份");
            int month = sc.nextInt();
            //初始化天数1900
            System.out.println("----------------------------------------------");
            System.out.println("     星期天      星期一      星期二      星期三      星期四      星期五      星期六            ");
            getDay(year, month);
    
        }
    展开全文
  • java年月打印日历 calendar的简单使用
    public class CalendarBook {
    
        public static void main(String[] args) throws ParseException {
            CalendarBook cb = new CalendarBook();
            cb.printWeekTitle();
            cb.printCalendar(2015,8);
        }
    
        public void printCalendar(int year,int month) throws ParseException{
            String monthStr;  //格式化月份,因为要转成yyyyMMdd格式的
            if(month<10){
                monthStr = "0"+month;
            } else{
                monthStr = month+""; //数字跟字符串拼接转成字符串格式
            }
            String yearMonthStr = year+monthStr;
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            Calendar calendarEnd = Calendar.getInstance();
            Calendar calendarStart = Calendar.getInstance();
            //根据年份和月份得到输入月份有多少天
            int monthDays = getMonthLastDay(year, month);  
            //月初的date字符串
            String dateStartStr = yearMonthStr+"01";    
            //月末的date字符串
            String dateEndStr = yearMonthStr+monthDays;  
            Date startDate = sdf.parse(dateStartStr);
            Date endDate = sdf.parse(dateEndStr);
            calendarStart.setTime(startDate);
            calendarEnd.setTime(endDate);
            //得到输入月份有多少周
            int weeks = calendarEnd.get(Calendar.WEEK_OF_MONTH);  
            //得到当月第一天是星期几,这里周日为第一天,从1开始,周一则为2
            int dayOfWeek = calendarStart.get(Calendar.DAY_OF_WEEK);  
            int day = 1;
            //当月的第一周做特殊处理,单独打印一行
            for(int i=1;i<=7;i++){
                if(i>=dayOfWeek){
                    System.out.print(" "+day+"  ");
                    day++;
                } else{
                    System.out.print("    ");
                }
            }
            System.out.println();
            //开始打印从第二周开始的日期
            for(int week=1;week<weeks;week++){
                for(int i=1;i<=7;i++){
                    if(day>monthDays){
                        break;
                    }
                    if(day<10){
                        System.out.print(" "+day+"  ");
                    } else{
                        System.out.print(day+"  ");
                    }
                    day++;
                }
                System.out.println();
            }
        }
    
    
        public int getMonthLastDay(int year,int month){
            int monthDay;
            int[][] day = {{0,31,28,31,30,31,30,31,31,30,31,30,31},
                            {0,31,29,31,30,31,30,31,31,30,31,30,31}};
            if(year%4==0 && year%100!=0 || year%400==0){
                //闰年
                monthDay = day[1][month];
            } else{
                monthDay = day[0][month];
            }
            return monthDay;
        }
        public void printWeekTitle(){ 
            System.out.println("日"+"     "+"一"+"     "+"二"+"    "+"三"+"    "+"四"+"     "+"五"+"     "+"六");
        }
    }

    运行结果截图(运行效果,字体大小5号最佳):
    运行效果,字体大小5号最佳

    展开全文
  • /*做日历作业:输入一个时间如: 2016-11就显示2016年11月的日历显示*/import java.util.*;class calendar {public static void main(String[] args){System.out.print("请选择年份(大于1990年):");Scanner input =...
  • * @description 输入年月打印该月的万年历 * @title 输入年月,打印该月的日历,已知2000年1月1号是星期六 */ public static void PrintWeekDay(){ //定义年月变量 int year,month; int totalDays=0;
  • import java.util.Scanner; public class Practice02 { ... //输入年月,输出该月日历 Scanner input = new Scanner(System.in); int year,month,monthDay=0,sumDay=1,weekDay; System.out.print("请输入年份:");
  • JAVA练习:利用JAVA基本语句实现打印日历

    万次阅读 多人点赞 2018-07-26 11:02:52
    已知1900年1月1日是星期一,要求打印输入年月日历。 输出结果格式: 日 一 二 三 四 五 六  1 2   3 4 5 6 7 8 9  10 11 12 13 ...
  • 使用java编写的简单的日历表,可以根据年份和月份显示日历
  • //键盘输入年和月 打印日历; Scanner input=new Scanner(System.in); System.out.println("请输入年份:"); int year=input.nextInt(); System.out.println("请输入月份:"); int month=input....
  • java实现打印日历

    千次阅读 2019-01-06 18:10:40
    已知1900年1月1日是星期一,用户输入年份和月份,可以打印出该月的日历 二、思路: 1、确定该月的总天数 2、需要确定该月的1号是星期几(可以通过计算该月1号距离1900年1月1号的天数,然后将天数对7取模,结果是几,...
  • //输入年份和月份,打印出这个月的日历表/*1.1900年1月1日是星期一2.计算输入的年份距离1900年有多少天再计算当年1月1日距这个月有多少天1)3.总天数%7得出从星期几开始注:计算机中的时间最小到1900年,此外UNIX系统...
  • java编写的日历类程序,输入年份和月份,打印出该月的日历 都是在控制台下输入输出的 例如输入2011年9月份,会输出 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ……………………
  • 1 importjava.util.Scanner;2 public classPrintCalendar{3 public static voidmain(String[] args){4 Scanner input=newScanner(System.in);56 System.out.print("Enter full year(e.g.,20...
  • JAVA 输入年份月份打印该月的日历

    万次阅读 2016-05-27 19:34:02
    打印出yyyy-MM日历 package qq; import java.util.Calendar; import java.util.Scanner; public class time { /** * @param args */ public static void main(String[] args) { // TOD
  • 已知,1900年1月1日是星期1,用户随机输入年月日,计算星期几 实现思路: 一、知道1900年1月1日为星期一,求输入的年份月份与1900年1月1日相隔的总天数。闰年366天,平年365天。 通过运算符实现闰年判断的...
  • Java实现按年月打印日历功能【基于Calendar】,日历calendar本文实例讲述了Java实现按年月打印日历功能。分享给大家供大家参考,具体如下:import java.text.ParseException;import java.text.SimpleDateFormat;...
  • 计算输入的年份距离1900年有多少天再计算当年1月1日距这个月有多少天1)3.总天数%7得出从星期几开始注:计算机中的时间最小到1900年,此外UNIX系统认为1970年1月1日0点是时间纪元。so,在本程序中不考了1900年以前的...
  • 【Java面试题】利用java输入年月,输出相应年月的日历(for循环【Java面试题】利用java输入年月,输出相应年月的日历(for循环,if语句,switch语句)[var1]输入年和月,自动打印对应年月的日历。[var1]1970年是Unix...
  • 这篇文章应用java技术输入年份和月份获取该年月日历表,下面通过一段代码给大家做展示: 输入年份和月份,打印出这个月的日历表  1.1900年1月1日是星期一  2.计算输入的年份距离1900年有多少天再计算当年1月1日距...
  • Java打印年月日历

    2019-06-12 13:36:53
    根据用户输入的年份和月份,在控制台打印出对应月份的日历。 二.算法讲解 要打印一个月的日历只需要知道两件事。 1.这个月第一天是星期几 本例子中,使用蔡勒公式,判断某年某月的一号是周几,关于蔡勒公式不了解的...
  • 匿名用户1级2011-09-23 回答import java.text.DateFormatSymbols;import java.util.Calendar;import java.util.Scanner;import javax.swing.JOptionPane;public class YearCalendar {public static void main(String...
  • 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);System.out.println("\n请输入年份:");int year ...
  • 输入年和月,自动打印对应年月日历。 补充知识: 1970年是Unix系统诞生的时间,所以人们把1970年定为Unix的元年,1970年1月1号是星期四。(这是计算机的一个参考值) 思路(仅供参考): 首先应该计算出这个月...
  • java----根据输入年月判断闰年和打印日历importjava.util.Scanner;importjava.text.ParseException;importjava.util.Calendar;publicclassCalendar{publicstaticvoidmain(String[]args)throwsParseException{...

空空如也

空空如也

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

java输入年月打印日历

java 订阅