栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

万年历,java如何实现日历查询

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

万年历,java如何实现日历查询

万年历

package time;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class CalendarTest {
    
    public static void main(String[] args) throws ParseException {
        Scanner key = new Scanner(System.in);
        Calendar cal = new GregorianCalendar();
        //打印日历的方法
        showTime(cal);
        while (true) {
            //打印操作帮助信息
            help();
            //接收指令
            int con = key.nextInt();
            switch (con) {
                case 1:
                    //打印上月的日历
                    preMonth(cal);
                    break;
                case 2:
                    //打印下月的日历
                    nextMonth(cal);
                    break;
                case 3:
                    //打印去年本月的日历
                    preYear(cal);
                    break;
                case 4:
                    //打印明年本月的日历
                    nextYear(cal);
                    break;
                case 5:
                    //打印指定年月的日历
                    checkYearMonth(key);
                    break;
                default:
                    System.out.println("请正确输入选项!");
            }
        }
    }

    
    private static void checkYearMonth(Scanner key) throws ParseException {
        System.out.println("请输入年月按此格式输入:(yyyy-MM)");
        String str = key.next();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
        Date date1 = sdf.parse(str);
        System.out.println(date1);
        Calendar cal = new GregorianCalendar();
        cal.setTime(date1);
        showTime(cal);
    }

    
    private static void nextYear(Calendar cal) {
        cal.add(Calendar.YEAR, +1);
        showTime(cal);
    }

    
    private static void preYear(Calendar cal) {
        cal.add(Calendar.YEAR, -1);
        showTime(cal);
    }

    
    private static void nextMonth(Calendar cal) {
        cal.add(Calendar.MONTH, +1);
        showTime(cal);
    }

    
    private static void preMonth(Calendar cal) {
        cal.add(Calendar.MONTH, -1);add()/roll():添加时间量
        showTime(cal);
    }

    private static void help() {
        System.out.println();
        System.out.println("* * * * * * * * * * * * * *");
        System.out.println("按1 查看上个月的日历");
        System.out.println("按2 查看下个月的日历");
        System.out.println("按3 查看去年本月的日历");
        System.out.println("按4 查看明年本月的日历");
        System.out.println("按5 查看指定年月的日历");
        System.out.println("* * * * * * * * * * * * * *");
        System.out.println("请输入指令:");
    }

    private static void showTime(Calendar cal) {
        //获取这个月的总天数
        int totalDays = cal.getActualMaximum(Calendar.DATE);
        //设置日期为当月第一天
        cal.set(Calendar.DAY_OF_MONTH, 1);
        // 获取月份第一天是周几,周日是第一天
        int week = cal.get(Calendar.DAY_OF_WEEK);
        // System.out.println("1号周"+(week-1));
        if (week == 1) {
            week = 8;
        }
        System.out.println("---------" + cal.get(Calendar.YEAR) + "年" + (cal.get(Calendar.MONTH) + 1) + "月---------");
        System.out.println("一t二t三t四t五t六t日");
        int num = 0;
        for (int i = 1; i < week - 1; i++) {
            System.out.print(" t");
            num++;
        }
        for (int i = 1; i <= totalDays; i++) {
            System.out.print(i + "t");
            num++;
            if (num % 7 == 0) {
                System.out.println();
            }
        }
        System.out.println();
    }
}

效果图

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/682911.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号