java实现日历(某年的日历,某月的日历)用户完全自定义

实现Java日历需要用到以下几个方面的知识:

  1. 日期和时间类:Java中有java.util.Date和java.util.Calendar类,但这些类已经被Java 8中的全新日期和时间API(Java.time)所取代,建议使用新API。
  2. 控制台输出:Java中有System.out.println()方法可以将内容输出到控制台。
  3. 用户输入:Java中有Scanner类可以读取用户输入。

下面是实现自定义日历的步骤:

  1. 导入必要的类:
import java.util.Scanner;
import java.time.LocalDate;
  1. 提供用户输入方法:
public static int getUserInput(String message) {
    System.out.print(message);
    Scanner scanner = new Scanner(System.in);
    return scanner.nextInt();
}

该方法接受一个字符串参数作为提示信息,然后使用Scanner类读取用户的输入并返回一个整数。

  1. 获取某年的日历:
public static void printYearCalendar(int year) {
    for (int month = 1; month <= 12; month++) {
        System.out.println(getMonthName(month) + " " + year);
        System.out.println("Su Mo Tu We Th Fr Sa");
        LocalDate date = LocalDate.of(year, month, 1);
        int dayOfWeek = date.getDayOfWeek().getValue();
        for (int i = 1; i < dayOfWeek; i++) {
            System.out.print("   ");
        }
        while (date.getMonthValue() == month) {
            System.out.printf("%2d ", date.getDayOfMonth());
            if (date.getDayOfWeek().getValue() == 7) {
                System.out.println();
            }
            date = date.plusDays(1);
        }
        if (date.getDayOfWeek().getValue() != 1) {
            System.out.println();
        }
        System.out.println();
    }
}

该方法接收一个表示年份的整数参数,并循环遍历1到12个月份,调用getMonthName方法获取月份名称并打印出来。接下来使用LocalDate类获取某年某月的第一天,并计算该日期为星期几。在输出前几天的空格后,循环输出该月的日期。每输出一个日期,判断是否是星期六,如果是则换行。当该月的日期输出完毕后,判断该月的最后一天是否是星期天,如果不是则换行。

  1. 获取某月的日历:
public static void printMonthCalendar(int year, int month) {
    System.out.println(getMonthName(month) + " " + year);
    System.out.println("Su Mo Tu We Th Fr Sa");
    LocalDate date = LocalDate.of(year, month, 1);
    int dayOfWeek = date.getDayOfWeek().getValue();
    for (int i = 1; i < dayOfWeek; i++) {
        System.out.print("   ");
    }
    while (date.getMonthValue() == month) {
        System.out.printf("%2d ", date.getDayOfMonth());
        if (date.getDayOfWeek().getValue() == 7) {
            System.out.println();
        }
        date = date.plusDays(1);
    }
    if (date.getDayOfWeek().getValue() != 1) {
        System.out.println();
    }
    System.out.println();
}

该方法接收一个整数的年份和月份参数,并使用类似于获取某年的日历的方法获取该月的日历。

下面是两个使用示例:

int year = getUserInput("请输入年份:");
printYearCalendar(year);

int year = getUserInput("请输入年份:");
int month = getUserInput("请输入月份:");
printMonthCalendar(year, month);

第一个示例将会打印出用户输入年份的12个月份的日历,第二个示例将会打印出用户输入的年份和月份的日历。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现日历(某年的日历,某月的日历)用户完全自定义 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java Spring Boot的介绍与初体验

    下面我来为你详细讲解“Java Spring Boot的介绍与初体验”的完整攻略。 一、什么是Spring Boot? Spring Boot是由Pivotal团队提供的框架,用于快速构建基于Spring的应用程序。Spring Boot通过自动配置,简化了应用程序的配置和部署过程,使开发人员能够更快地开发应用程序并更快地把应用程序部署到生产环境中。 二、S…

    Java 2023年5月19日
    00
  • Java实现学生信息管理系统(使用数据库)

    下面我来详细讲解Java实现学生信息管理系统使用数据库的完整攻略。 思路 实现学生信息管理系统需要考虑以下几个方面: 数据库的设计和建立 Java程序连接数据库 Java程序操作数据库 前端页面的设计和制作 将Java程序和前端页面结合在一起 在这里我们选择使用MYSQL数据库进行操作,使用JDBC连接数据库,采用MVC设计模式来实现程序。 实现步骤 1. …

    Java 2023年5月19日
    00
  • 自定义类加载器的作用是什么?

    自定义类加载器的作用: Java类在运行时是需要被加载的。默认情况下,Java虚拟机会使用以下三种类加载器来加载类: Bootstrap ClassLoader:负责加载Java的核心类,如java.lang.Object等。 Extension ClassLoader:负责加载Java扩展库,如javax.*等。 Application(Class) Cl…

    Java 2023年5月10日
    00
  • Python漏洞验证程序Poc利用入门到实战编写

    Python漏洞验证程序Poc(Proof of Concept)利用入门到实战编写的攻略主要包含以下几个步骤: 1. 确定漏洞类型及目标 在编写Poc的前提下,需要先确定目标攻击对象以及攻击的漏洞类型。例如,确定攻击Python web应用程序中的SQL注入漏洞。 2. 进行漏洞测试 在确定漏洞类型之后,需要利用工具或手动方式进行漏洞测试确认漏洞是否存在以…

    Java 2023年5月20日
    00
  • Java的Struts2框架配合Ext JS处理JSON数据的使用示例

    下面我来详细讲解一下Java的Struts2框架配合Ext JS处理JSON数据的使用示例的完整攻略。 简介 在开发Web应用程序时,常常需要使用JSON(JavaScript对象表示法)来进行数据的传递,而Struts2框架可以帮助我们很好地处理JSON数据。而Ext JS是一款优秀的JavaScript框架,可以让我们轻松地构建富客户端的Web应用程序。…

    Java 2023年5月20日
    00
  • Spring Boot如何实现定时任务的动态增删启停详解

    下面我会详细讲解“Spring Boot如何实现定时任务的动态增删启停详解”的完整攻略。 什么是定时任务? 定时任务(Scheduled Task)是指在指定的时间点或时间间隔内自动执行某个操作的任务。在很多场景下,我们经常需要定时执行某些操作,例如定时清理临时数据、定时发送邮件等。 Spring Boot如何实现定时任务 Spring Boot 提供了标准…

    Java 2023年5月19日
    00
  • MySQL基于java实现备份表操作

    MySQL基于Java实现备份表操作的攻略主要分为以下几个步骤: 引入相关依赖 首先,我们需要在项目中引入mysql-connector-java这个库的依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖: <dependency> <groupId>mysql</groupId> <artifactI…

    Java 2023年5月20日
    00
  • Java中instance的用法详解

    Java中instance的用法详解 在Java中,instance是一个关键字,表示对象的实例。在本文中,我们将会详细讲解instance的用法,包括什么是instance、如何使用instance以及instance的常见应用场景。 什么是instance instance是一个关键字,表示对象的实例。在Java中,对象是类的一个实例,有着自己的属性和方…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部