如果想用户自定义输入日期查询,可以通过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. 简单学生管理系统HTML前端页面

    效果图: 实现代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...

  2. RSA非对称加密算法实现:Golang

    RSA是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院工作.RSA ...

  3. Java常用的几种设计模式

    本来想写点spring相关的东西的,想来想去,先写点设计模式的东西吧 什么是设计模式?套用百度百科的话解释吧 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设 ...

  4. html基础 button按钮标签

    场景:在网页中显示用户点击的按钮标签名:button 注意:form不能少,少了不会出效果 html代码 <form > 昵称: <input type="text&quo ...

  5. Java的jar包构建成docker镜像并运行

    结构如下 把jar和Dockerfile放到一个文件,不在一个文件下会报错文件找不到 创建一个构建文件 buildimage.sh vi /home/hanby/buildimage.sh echo ...

  6. Windows alias 给cmd命令起别名

    场景: Linux的alias命令是个非常实用的工具,任何命令通过alias可以精简到很短,比如:alias l='ls -l' Windows也有alias类似的命令,就是:doskey,开启方法也 ...

  7. java 使用 ArrayList 排序【包括数字和字符串】

    1.数字排序 /** * 数字排序 */ @Test public void t2() { List<Integer> list = new ArrayList<>(); li ...

  8. linux中链接错误的时候,快速找到缺失的符号在哪个库中

    编译一个opencv程序,链接的时候出现大量的如下错误: /home/admin/opencv/opencv-master/modules/imgproc/src/color_lab.cpp:23: ...

  9. fidder无法下载证书的最佳解决办法

    为什么有的小伙伴安装fidder不好使,手机无法下载证书? 1.安装一定要去官网安装! 一定要去官网安装! 一定要去官网安装!官方网址:https://www.telerik.com/download ...

  10. 很详细的FFT(快速傅里叶变换)概念与实现

    FFT 首先要说明一个误区,很多人认为FFT只是用来处理多项式乘的,其实FFT是用来实现多项式的系数表示法和点值表示法的快速转换的,所以FFT的用处远不止多项式乘. FFT的前置知识:点值表示法,复数 ...