用最笨的方法实现java控制台日历打印
如果想用户自定义输入日期查询,可以通过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控制台日历打印的更多相关文章
- AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)
这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...
- JAVA控制台输入输出方法总结
java的控制台输入输出有很多方法,此文分别对其进行介绍. 1.控制台的输入 关于控制台的输入主要介绍三种方法,第一种方法使用BufferedReader获得控制台输入的数据,此方法是传统的输入方法, ...
- java控制台输入
一.java控制台输入 java控制台输入有如下几个方法 1.JDK 1.4 及以下版本读取的方法 JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使用System.in获得系统的 ...
- Java 控制台输入数字 输出乘法表(代码练习)
最近,回忆了一些刚学习Java时经常练习的一些小练习题.感觉还是蛮有趣的,在回顾时想起好多学习时的经历和坎坷,一道小小的练习题要研究半天,珍重过往,直面未来.下面贡献代码,Java 控制台输入数字 输 ...
- 设计模式之第1章-工厂方法模式(Java实现)
设计模式之第1章-工厂方法模式(Java实现) “我先来”,“不,老公,我先!”.远远的就听到几个人,哦不,是工厂方法模式和抽象工厂模式俩小夫妻在争吵,尼妹,又不是吃东西,谁先来不都一样(吃货的世界~ ...
- java面试记录二:spring加载流程、springmvc请求流程、spring事务失效、synchronized和volatile、JMM和JVM模型、二分查找的实现、垃圾收集器、控制台顺序打印ABC的三种线程实现
注:部分答案引用网络文章 简答题 1.Spring项目启动后的加载流程 (1)使用spring框架的web项目,在tomcat下,是根据web.xml来启动的.web.xml中负责配置启动spring ...
- 记一次使用修改字节码的方法解决java.lang.NoSuchMethodError
接兔兔国际sdk ane 充值界面选择兔币充值就会闪退, 观察logcat 04-19 10:10:54.224: E/AndroidRuntime(20315): FATAL EXCEPTION: ...
- java控制台输入带空格的字符串
java控制台输入带空格的字符串 Scanner sc = new Scanner(System.in); String str = sc.nextLine();
- JAVA写JSON的三种方法,java对象转json数据
JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...
随机推荐
- matplotlb 进阶之Styling with cycler
目录 cycler 教程 函数链接 matplotlib教程学习笔记 cycler 在教程开始之前,我们需要了解cycler模块 from __future__ import print_functi ...
- CS5268替代AG9321MCQ 替代AG9321方案 TYPEC转HDMI多功能拓展坞
台湾安格AG9321MCQ是一款TYPEC拓展坞产品方案,他集中了TYPEC 转HDMI VGA PD3.0快充 QC3.0数据传输 I2S接口的音频DAC输出以及可以各种读卡器功能. Caps ...
- UML的定义和组成详细介绍
目录 1.UML 1.1概述 1.2 UML是一种建模语言 1.3 UML语言包含三方面 2.UML支持软件体系结构建模 2.1 逻辑视图 2.2 实现(开发)视图 2.3 部署视图 2.4 过程视图 ...
- .NET 云原生架构师训练营(责任链模式)--学习笔记
目录 责任链模式 源码 责任链模式 职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无需关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了 何时使用:在处理 ...
- Linux设置新的服务器登录端口
root用户登录服务器 22端口修改为22525,22端口也打开,以防新端口设置有问题,登录不上服务器 向防火墙中添加修改的端口 systemctl start firewalld firewall- ...
- Java中Jar包调用命令行运行编译
原文链接:https://www.toutiao.com/i6491877373942694413/ 记事本编写两个简单的类 文件结构目录 启动DOS,进入文件所在目录 进入到class所在文件的目录 ...
- SGU140. Integer Sequences
https://codeforces.com/problemsets/acmsguru/problem/99999/140 n元同余方程的求解 对于任意二元我们可以替换成kgcd(a,b),不断迭代下 ...
- MySQL注入点写webshell的五种方式
0x00 写数据的前提 1,在mysql的配置文件 my.ini 中,secure_file_priv="c:/wamp64/tmp" 被注释 或者 `secure_file_pr ...
- Springboot集成邮箱服务发送邮件
一.前言 Spring Email 抽象的核心是 MailSender 接口,MailSender 的实现能够把 Email 发送给邮件服务器,由邮件服务器实现邮件发送的功能. Spring 自带了一 ...
- 【pwn】学pwn日记——栈学习(持续更新)
[pwn]学pwn日记--栈学习(持续更新) 前言 从8.2开始系统性学习pwn,在此之前,学习了部分汇编指令以及32位c语言程序的堆栈图及函数调用. 学习视频链接:XMCVE 2020 CTF Pw ...