用最笨的方法实现java控制台日历打印

时间:2021-08-25 00:13:37

如果想用户自定义输入日期查询,可以通过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控制台中文打印乱码&plus;导入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章-工厂方法模式&lpar;Java实现&rpar;

    设计模式之第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&period;lang&period;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. Firemonkey Bitmap 设定像素颜色 Pixel

    VCL 和 Firemonkey 的 Bitmap 处理像素的方式不相同,下例为将图片内不是「白色」的像素全部改成「黑色」: procedure TForm1.Button1Click(Sender: ...

  2. django中的静态文件管理

    一个站点通常需要保存额外的文件,比如图片   css样式文件   js脚本文件 ,在django中,倾向于将这些文件称为 静态文件.django提供了django.contrib.staticfile ...

  3. jsp编写页面时常见错误提示

    jsp编写页面时常见错误提示 404-->未部署web应用 500-->代码有问题 无法显示网页-->未启动tomcat webRoot-->URL输入有误 web-inf-- ...

  4. Android设计中的&period;9&period;png

    在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”.这种图片是用于Android开发的一种特殊的图片格式,它的 ...

  5. 大约cocos2d-X 3&period;x使用引擎版本自带的物理引擎Physics

    今天打算用BOX2D物理引擎, 我想我以前听说过一些时间cocos2d-X在3.0版本封装自己的物理引擎Physics, 听名字很霸气量, 这的确是一个比BOX2D非常多( 毕竟是基于BOX2D封装的 ...

  6. 学习笔记TF067&colon;TensorFlow Serving、Flod、计算加速,机器学习评测体系,公开数据集

    TensorFlow Serving https://tensorflow.github.io/serving/ . 生产环境灵活.高性能机器学习模型服务系统.适合基于实际数据大规模运行,产生多个模型 ...

  7. 【AtCoder】ARC080

    C - 4-adjacent 我们挑出来4的倍数和不是4的倍数而是2的倍数,和奇数 然后就是放一个奇数,放一个4,如果一个奇数之后无法放4,然后它又不是最后一个,那么就不合法 #include &lt ...

  8. 模拟window系统的&OpenCurlyDoubleQuote;回收站”

    若要模拟window系统的“回收站”功能,具体的要求如下: 对于列表中的图片,可以通过拖动或单击“删除”的链接,以动画的方式移至“回收站”. 对于“回收站的图片”,可以通过拖动和单击“还原”的链接,以 ...

  9. MySQL InnoDB Engine--数据预热

    ##========================================##在MySQL 5.7版本中引入将Innodb Buffer中数据备份和回复的新特性,具体原理时将Buffer p ...

  10. 深入理解java虚拟机---3垃圾回收机制GC

    本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片.视频等原文的内容) 若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cn ...