package com.date;

import java.text.DateFormatSymbols;
import java.util.Calendar; import org.junit.Test; public class CalendarTest {
/**
* 打印当前月的日历
*/
@Test
public void test1(){ // GregorianCalendar d = new GregorianCalendar();
Calendar d = Calendar.getInstance();
// 获取 当前 日 和月
int today = d.get(Calendar.DAY_OF_MONTH);
int month = d.get(Calendar.MONTH); // System.out.println(day+"\n"+month); //设置当前时间为 本月第一天
d.set(Calendar.DAY_OF_MONTH, 1);
//获取这一天是星期几
int weekday = d.get(Calendar.DAY_OF_WEEK); //获取当前地区 一周的第一天是星期几
int firstDayOfWeek = d.getFirstDayOfWeek(); // System.out.println(weekday+"\n"+firstDayOfWeek); //补充当前月 第一个星期中的 缩进的天数
int indent =0;
while(weekday!=firstDayOfWeek){
indent ++;
d.add(Calendar.DAY_OF_MONTH, -1);
weekday = d.get(Calendar.DAY_OF_WEEK);
} //打印星期
String[] weekdayNames = new DateFormatSymbols().getShortWeekdays();
// System.out.println(Arrays.asList(weekdayNames).toString());
do{
System.out.printf("%4s",weekdayNames[weekday]);
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}while(weekday!=firstDayOfWeek); System.out.println(); //将第一行 缩进的星期 空出来
for(int i=0;i<indent;i++){
System.out.print(" ");
}
d.set(Calendar.DAY_OF_MONTH, 1); do{
// 打印 天
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d",day); //标记当前 天
if(day == today){
System.out.print("*");
}else{
System.out.print(" ");
} //继续下一天
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK); //遇到 星期开始 ,换行
if(weekday==firstDayOfWeek) System.out.println(); }while(d.get(Calendar.MONTH) == month); }
}

结果:

  aaarticlea/png;base64,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" alt="" />

使用Calendar 将当月日历打印出来的更多相关文章

  1. Java Calendar实现控制台日历

    public static void main(String[] args) throws IOException { //初始化日历对象 Calendar calendar = Calendar.g ...

  2. python之模块calendar(汇集了日历相关的操作)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #calendar日历模块 import calendar #3个大类: calendar.Calendar( ...

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

    如果想用户自定义输入日期查询,可以通过Calendar的set方法和Scanner方法设置 Calendar类简单使用:https://blog.csdn.net/weixin_43670802/ar ...

  4. WPF 自定义Calendar样式(日历样式,周六周日红色显示)

    一.WPF日历控件基本样式 通过Blend获取到Calendar需要设置的三个样式CalendarStyle.CalendarButtonStyle.CalendarDayButtonStyle.Ca ...

  5. oracle 当月日历的sql

    select max(sun) sun, max(mon) mon, max(tue) tue, max(wed) wed, max(thu) thu, max(fri) fri, max(sat) ...

  6. Java中的Calendar日历用法详解

    第一部分 Calendar介绍 public abstract class Calendar implements Serializable, Cloneable, Comparable<Cal ...

  7. 用java打印日历

    来自<java核心技术卷一> /** * Created by wangbin10 on 2019/1/3. * 打印当月日历 */ public class CalendarTest { ...

  8. Oracle打印日历功能

    Oracle用SQL打印日历 1.1  打印当月日历 , D, NULL)) SUN, , D, NULL)) MON, , D, NULL)) TUE, , D, NULL)) WED, , D,  ...

  9. java之Date(日期)、Date格式化、Calendar(日历)

    参考http://how2j.cn/k/date/date-date/346.html Date(日期) Date类 注意:是java.util.Date; 而非 java.sql.Date,此类是给 ...

随机推荐

  1. 门户级UGC系统的技术进化路线——新浪新闻评论系统的架构演进和经验总结(转)

    add by zhj:先收藏了 摘要:评论系统是所有门户网站的核心标准服务组件之一.本文作者曾负责新浪网评论系统多年,这套系统不仅服务于门户新闻业务,还包括调查.投票等产品,经历了从单机到多机再到集群 ...

  2. Eclipse 安装对 Java 8 的支持

    Java 8 正式版今天已经发布了(详情),但最常用的 Java 开发工具 Eclipse 还没有正式发布对 Java 8 的支持.不过目前可以通过更新 JDT 来支持 Java 8.步骤如下: 菜单 ...

  3. 结构类模式(一):适配器(Adapter)

    定义 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 类适配器模式 使用继承的方式实现没有提供的接口从而达到适配到新系统的需求. ...

  4. Giraph之SSSP(shortest path)单机伪分布运行成功

    所遇问题:Exception 1: Exception in thread "main" java.lang.IllegalArgumentException: "che ...

  5. 设置ul阴影效果和边框圆角

    ul.box {position: relative;z-index: 1; /* prevent shadows falling behind containers with backgrounds ...

  6. linux环境新增用户和所属组

    1.查看用户和组信息命令: 1.1 cat /etc/passwd /etc/passwd 存储有关本地用户的信息. 1)username        UID到名称的一种映射,用户名 2)passw ...

  7. MFC容器类介绍

    我们知道如果是单个的少数几个值弄些int , long,float ,double等类型的变量来装这些值就行了.但如果值太多这样就比较麻烦.当然数据超级多时就直接放数据库里存着去了. 但如果数值不多不 ...

  8. Windows创建自动化任务

    Windows创建自动化任务使得开机就打开相应的Python目录 1:计算机管理 2:找到任务计划程序 3:创建基本任务 4:任务触发器 5: 建立bat执行文件 start "" ...

  9. windows下安装,配置gcc编译器

    在Windows下使用gcc编译器: 1.首先介绍下MinGW MinGW是指仅仅用自由软件来生成纯粹的Win32可运行文件的编译环境,它是Minimalist GNU on Windows的略称. ...

  10. cdoj 15 Kastenlauf dfs

    Kastenlauf Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/3 De ...