用java写一个打印月历的程序

简介: 用java写一个打印月历的程序

学习了Date以及Calendar不少朋友还有些疑惑,下面通过一个月历程序让大家有更深的理解,希望能够帮助到大家。

如果我写的不好或者有需要改进的地方,欢迎广大朋友在评论区留言,我看到都会一一回复。

程序描述:输入一个月份打印出这个月份的日历

代码如下:

package com.etc.work;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
 //实现打印出某月的一个日历
public class Test2 {
          //关键是要得出这个月的第一天是星期几,以及这个月一共有几天
  public static void main(String[] args) throws ParseException {
    System.out.print("请输入日期(建议格式如2018-03):");
    Scanner sc = new Scanner(System.in);
    String input_Date=sc.next();
    SimpleDateFormat  simp=new SimpleDateFormat("yyyy-MM");
    //字符串转换Date
    Date date=simp.parse(input_Date);  //默认1号 0时
     Calendar newDate=Calendar.getInstance();
       newDate.setTime(date);
    int week=newDate.get(Calendar.DAY_OF_WEEK)-1; //得出该月的第一天是星期几
    int day=newDate.getActualMaximum(Calendar.DATE);   //得出该月一共有几天
    System.out.println("该月份日历如下:");
    System.out.println("日         一          二         三         四         五         六");
    for(int a=1;a<=week;a++) {
      System.out.print("       ");
    }
    for(int i=1;i<=day;i++) {
      System.out.print(i);
      if(i<10) {
        System.out.print("      ");   //因为十位数比个位数多一个空格的占用间隔,个位数打印6个空格,十位数打印5个空格。
      }else {
        System.out.print("     ");
      }
      week++;
      if(week==7) {                      //如果一个星期满了就换行输出
        System.out.print("\n");
        week=0;
      }
    }
  }
}

其中涉及到了Date转化为Calendar,原因是因为Calendar提供了一些方法,比较好操作。

运行结果如图:


目录
相关文章
|
16天前
|
IDE Java 开发工具
在DOS环境下调试Java程序
在DOS环境下调试Java程序
22 1
|
16天前
|
Java Android开发
在Eclipse环境下调试Java程序
在Eclipse环境下调试Java程序
25 1
|
3天前
|
Java
启动Java 程序脚本 版本二
启动Java 程序脚本 版本二
10 0
|
3天前
|
小程序 Java
Java程序利用main函数中args参数实现参数的传递
Java程序利用main函数中args参数实现参数的传递
7 0
|
3天前
|
分布式计算 Java Hadoop
简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
8 0
|
4天前
|
存储 监控 数据可视化
详解JAVA程序调优
详解JAVA程序调优
9 0
|
7天前
|
算法 Java 测试技术
滚雪球学Java(55):想让你的程序更有趣?加上这个Java的Random类的小技巧!
【6月更文挑战第9天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
14 2
滚雪球学Java(55):想让你的程序更有趣?加上这个Java的Random类的小技巧!
|
9天前
|
IDE Java 项目管理
Java入门——Intellij IDEA简介、使用IDEA开发程序、IDEA常用快捷键、IDEA其他操作
Java入门——Intellij IDEA简介、使用IDEA开发程序、IDEA常用快捷键、IDEA其他操作
11 3
|
9天前
|
Oracle Java 关系型数据库
Java入门——开发环境、入门程序(搭建Java开发环境、安装JDK 验证、JDK、编写代码、编译代码、运行代码)
Java入门——开发环境、入门程序(搭建Java开发环境、安装JDK 验证、JDK、编写代码、编译代码、运行代码)
17 3
|
9天前
|
网络协议 Java
Java Socket编程 - 基于TCP方式的客户服务器聊天程序
Java Socket编程 - 基于TCP方式的客户服务器聊天程序
16 0