文档章节

可视化日历【Java,有详细的注释】

非著名程序员Bla
 非著名程序员Bla
发布于 2016/05/18 18:04
字数 462
阅读 25
收藏 0
package cn.bla.test;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
/** * VisualCalender ===可视化日历=== * @author 杨润康 * @category java * @since 2015-5-31 * @version 1 */
public class VisualCalender {
    public static void main(String[] args) throws Exception {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入日期:<格式:2015-5-5>");
        String time=input.next();//用户输入的字符串
        //具体的处理判断
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = dateFormat.parse(time);//将字符串解析成日期类型

        //日历类上场
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(date);//将日期放进日历里面去,然后对日历进行操作,实际上就是对日期进行操作
        //因为日历都是从一开始的,所以先将用户输入的日期的日部分变为1
        calendar.set(Calendar.DATE, 1);
        //得到当前月份的一号,是在一周之内的周几 (得到的数要-1 ,因为老外的是从周日开始一周的生活的,所以比我们早了一天)
        int actualDayInAWeek=calendar.get(Calendar.DAY_OF_WEEK)-1;
        //得到当前月份有多少天DATE || DAY_OF_MONTH
        int actualDaysInMonth=calendar.getMaximum(Calendar.DAY_OF_MONTH);
        //现在处理在具体的某一号的后面做个标记
            //先前为了处理月份的一号是在一周的星期几时,曾把它设为1,现在把它恢复过来,为下面的标记做准备
            String getOldDate=dateFormat.format(date);
            Date oldDate = dateFormat.parse(getOldDate);
            calendar.setTime(oldDate);
            //取月份中的具体的某一号
            int day=calendar.get(Calendar.DATE);
        //程序的可视化部分
        System.out.println("\t\t===可视化日历===");
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        for(int i=1;i<=actualDaysInMonth;i++){
            //让1号在具体的周几的位置,然后在这个位置之前是不打印任何字符的,只打印空格
            if(i<=actualDayInAWeek){
                System.out.print("\t");
                continue;
            }
            if((i-actualDayInAWeek)==day){//在具体的某一号的后面做#个标记
                System.out.print((i-actualDayInAWeek)+"#\t");
                continue;
            }
            System.out.print((i-actualDayInAWeek)+"\t");//(i-actualDayInAWeek)在周X的位置,是从一开始打印的

            if(i%7==0){
                System.out.println();
            }
        }
    }
}

本文转载自:http://blog.csdn.net/yangrunkangbla/article/details/46290851

共有 人打赏支持
非著名程序员Bla
粉丝 15
博文 75
码字总数 0
作品 0
合肥
后端工程师
私信 提问
JComponentPack的网友评论

JComponentPack 是一个基于Java Swing的GUI类库(非开源),一系列可视化的JavaBeans集合,它基于Swing的MVC架构,是100%的纯Java类库,它包括20多个Swing 所没有的控件,如EXCEL风格Java的电...

红薯
2009/12/11
420
1
Java 9 已在路上,公共审查规范草案出来了

Oracle 的 Iris Clark 在发送给 OpenJDK 邮件列表的邮件中宣布,Java 9 的公共审查规范草案已可用。并表示,如果所有人都对草案感到满意,会将其提交给 JCP 项目管理办公室(PMO),以便下星...

王练
2017/03/11
3.9K
10
扩展 JDT 实现自动代码注释与格式化

简介: 本文介绍了一个为 Eclipse 工作空间中的 Java 代码自动添加统一注释并格式化排版的工具及其具体实现。该工具扩展 Eclipse Java Development Tool(JDT)API,操作 Java 代码。通过本文...

红薯
2010/07/30
1K
1
JDK 7 第四个里程碑版发布

JDK 7 的第四个里程碑版已经提供下载,该版本主要的新特性包括: 1. 向前兼容 6u10 版本的特性,包括:新的Java插件框架、Java 核心 以及 快速启动等 2. JSR 308:Java类型的注释,该规范允许...

红薯
2009/08/06
1K
1
IntelliJ IDEA 2018.3 正式版发布!

温馨提示:有用户反馈升级至该版本后,部分插件不能使用,请谨慎。 IntelliJ IDEA 今年的最后一次大版本更新 2018.3 现已正式发布,值得关注的更新包括支持 Java 12、Git submodule、GitHub ...

局长
2018/11/22
10.2K
55

没有更多内容

加载失败,请刷新页面

加载更多

对Docker了解多少?10分钟带你从入门操作到实战上手

Docker简述 Docker是一种OS虚拟化技术,是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windows10目前也原生支持,W...

别打我会飞
41分钟前
3
0
Java自定义注解及应用

前沿 java目前只内置了三种标准注解 注解 解释 @Override 表示当前的方法定义将覆盖超类中的方法。如果你不小心拼写错误,或者方法签名对不上被覆盖的方法,编译器就会发出错误提示 @Depreca...

细节探索者
45分钟前
1
0
Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能

视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpeg有非常强大...

红土豆
48分钟前
1
0
谈谈lucene的DocValues特性之SortedDocValuesField

lucene的DocValues不同于document文档级别的存储,它是一个面向列的存储结构,提供从文档编号到值的映射功能。根据不同的数据类型和应用场景支持多个DocValuesField类型,SortedDocValuesFi...

FAT_mt
今天
3
0
漏洞防御与修复工作

导读 漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术...

问题终结者
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部