如果想用户自定义输入日期查询,可以通过Calendar的set方法和Scanner方法设置

Calendar类简单使用:https://blog.csdn.net/weixin_43670802/article/details/89953759

package test1.three;

import java.text.SimpleDateFormat;
import java.util.Calendar; public class MyCalendar {
public static void printCalendar(){ //本月时长,打印变量,当前日期
int days=0,n=1,div=0; SimpleDateFormat format=new SimpleDateFormat("yyyy年MM月");
Calendar now=Calendar.getInstance();
//-------------------------------------------------
//得到当前日期
div=now.get(Calendar.DAY_OF_MONTH);
//-------------------------------------------------
//得到本月天数
now.add(Calendar.MONTH,1);
now.set(Calendar.DAY_OF_MONTH,1);
now.add(Calendar.DAY_OF_MONTH,-1);
days=now.get(Calendar.DAY_OF_MONTH);
//-------------------------------------------------
//当前月份日历显示
System.out.println(" 傻瓜式日历:"+format.format(now.getTime()));
System.out.println(" --------------------------------------------------");
//-------------------------------------------------
//设置为月初
now.set(Calendar.DAY_OF_MONTH,1);
//-------------------------------------------------
//表头
String[] week={"日","一","二","三","四","五","六"};
//-------------------------------------------------
//打印表头
for(int i=0;i<week.length;i++){ System.out.print(" "+week[i]);
}
//换行
System.out.print("\n ");
//-------------------------------------------------
//打印第一行
for(int i=1;i<now.get(Calendar.DAY_OF_WEEK);i++){
System.out.print(" ");
}
for(int j=0;j<=7-now.get(Calendar.DAY_OF_WEEK);j++){
//判断是否超出本月期限
if(n<=days){
//判断是否是当前日
if(n==div)
System.out.print("["+(n++)+"]");
else
System.out.print(n++);
}
System.out.print(" ");
}
System.out.print("\n "); //-------------------------------------------------
//打印其余部分
for(int i=0;i<days/7+1;i++){
//7列
for(int j=0;j<7;j++){
//判断是否超出本月期限
if(n<=days){
//判断是否是当前日
if(n==div)
System.out.print("["+(n++)+"]");
else
System.out.print(n++);
} //间距
System.out.print(" ");
}
//换行
System.out.print("\n ");
}
//------------------------------------------------- } }

另外还有好多更简便的实现方法,参考

https://blog.csdn.net/bj15114817915/article/details/62431237/

https://blog.csdn.net/madridcrls7/article/details/80270764

用最笨的方法实现java控制台日历打印的更多相关文章

  1. AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)

    这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...

  2. JAVA控制台输入输出方法总结

    java的控制台输入输出有很多方法,此文分别对其进行介绍. 1.控制台的输入 关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法, ...

  3. java控制台输入

    一.java控制台输入 java控制台输入有如下几个方法 1.JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的 ...

  4. Java 控制台输入数字 输出乘法表(代码练习)

    最近,回忆了一些刚学习Java时经常练习的一些小练习题.感觉还是蛮有趣的,在回顾时想起好多学习时的经历和坎坷,一道小小的练习题要研究半天,珍重过往,直面未来.下面贡献代码,Java 控制台输入数字 输 ...

  5. 设计模式之第1章-工厂方法模式(Java实现)

    设计模式之第1章-工厂方法模式(Java实现) “我先来”,“不,老公,我先!”.远远的就听到几个人,哦不,是工厂方法模式和抽象工厂模式俩小夫妻在争吵,尼妹,又不是吃东西,谁先来不都一样(吃货的世界~ ...

  6. java面试记录二:spring加载流程、springmvc请求流程、spring事务失效、synchronized和volatile、JMM和JVM模型、二分查找的实现、垃圾收集器、控制台顺序打印ABC的三种线程实现

    注:部分答案引用网络文章 简答题 1.Spring项目启动后的加载流程 (1)使用spring框架的web项目,在tomcat下,是根据web.xml来启动的.web.xml中负责配置启动spring ...

  7. 记一次使用修改字节码的方法解决java.lang.NoSuchMethodError

    接兔兔国际sdk ane 充值界面选择兔币充值就会闪退, 观察logcat 04-19 10:10:54.224: E/AndroidRuntime(20315): FATAL EXCEPTION: ...

  8. java控制台输入带空格的字符串

    java控制台输入带空格的字符串 Scanner sc = new Scanner(System.in); String str = sc.nextLine();

  9. JAVA写JSON的三种方法,java对象转json数据

    JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...

随机推荐

  1. matplotlb 进阶之Styling with cycler

    目录 cycler 教程 函数链接 matplotlib教程学习笔记 cycler 在教程开始之前,我们需要了解cycler模块 from __future__ import print_functi ...

  2. CS5268替代AG9321MCQ 替代AG9321方案 TYPEC转HDMI多功能拓展坞

    台湾安格AG9321MCQ是一款TYPEC拓展坞产品方案,他集中了TYPEC 转HDMI  VGA  PD3.0快充  QC3.0数据传输 I2S接口的音频DAC输出以及可以各种读卡器功能. Caps ...

  3. UML的定义和组成详细介绍

    目录 1.UML 1.1概述 1.2 UML是一种建模语言 1.3 UML语言包含三方面 2.UML支持软件体系结构建模 2.1 逻辑视图 2.2 实现(开发)视图 2.3 部署视图 2.4 过程视图 ...

  4. .NET 云原生架构师训练营(责任链模式)--学习笔记

    目录 责任链模式 源码 责任链模式 职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无需关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了 何时使用:在处理 ...

  5. Linux设置新的服务器登录端口

    root用户登录服务器 22端口修改为22525,22端口也打开,以防新端口设置有问题,登录不上服务器 向防火墙中添加修改的端口 systemctl start firewalld firewall- ...

  6. Java中Jar包调用命令行运行编译

    原文链接:https://www.toutiao.com/i6491877373942694413/ 记事本编写两个简单的类 文件结构目录 启动DOS,进入文件所在目录 进入到class所在文件的目录 ...

  7. SGU140. Integer Sequences

    https://codeforces.com/problemsets/acmsguru/problem/99999/140 n元同余方程的求解 对于任意二元我们可以替换成kgcd(a,b),不断迭代下 ...

  8. MySQL注入点写webshell的五种方式

    0x00 写数据的前提 1,在mysql的配置文件 my.ini 中,secure_file_priv="c:/wamp64/tmp" 被注释 或者 `secure_file_pr ...

  9. Springboot集成邮箱服务发送邮件

    一.前言 Spring Email 抽象的核心是 MailSender 接口,MailSender 的实现能够把 Email 发送给邮件服务器,由邮件服务器实现邮件发送的功能. Spring 自带了一 ...

  10. 【pwn】学pwn日记——栈学习(持续更新)

    [pwn]学pwn日记--栈学习(持续更新) 前言 从8.2开始系统性学习pwn,在此之前,学习了部分汇编指令以及32位c语言程序的堆栈图及函数调用. 学习视频链接:XMCVE 2020 CTF Pw ...