package com.etc.util;

import java.util.Calendar;
import java.util.Scanner; public class Calendar2 { public static void main(String[] args) {
// 创建扫描器
Scanner sc = new Scanner(System.in);
// 输入年份
System.out.println("请输入指定年份:");
int year = sc.nextInt();
// 输入月份
System.out.println("请输入指定月份:");
int month = sc.nextInt();
// 输入天数
System.out.println("请输入指定天数:");
int day = sc.nextInt(); // 在控制台输出周期数
System.out.println("日\t一\t二\t三\t四\t五\t六"); // 创建日历Calendar变量对象
Calendar cal = Calendar.getInstance();
// 给Calendar对象设置年月日
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);
// cal.set(Calendar.DATE,day); // 将天数设置为第一天
cal.set(Calendar.DATE, 1); // 指定月的第一天是星期几
int i = cal.get(Calendar.DAY_OF_WEEK); int weekday = 0;// 指定月的第一天前面有多少个空格
switch (i) {
case 1:
weekday = 0;
break;
case 2:
weekday = 1;
break;
case 3:
weekday = 2;
break;
case 4:
weekday = 3;
break;
case 5:
weekday = 4;
break;
case 6:
weekday = 5;
break;
case 7:
weekday = 6;
break;
} // 打印输出指定月第一天的前面几个空格
for (int j = 0; j < weekday; j++) {
System.out.print("\t");
} int days = 1;
// 从指定月的第一天开始打印输出
for (int j = 0; j < 7 - weekday; j++) {
System.out.print(days + "\t");
days++;
} int actualMaximumDate = cal.getActualMaximum(Calendar.DATE);//获取本月的实际最大天数
cal.set(Calendar.DATE,actualMaximumDate);//设置本月的天数是当前月的实际最大天数
int week_month=cal.get(Calendar.WEEK_OF_MONTH);//返回的是当前天数是本月第几周 for(int j=0;j<week_month;j++){//指定月有多少周,就打印多少行
System.out.println();//每输出打印7天就换一行
for(int k=0;k<7;k++){//依次将周日到周六的对应的天数打印出来
if(days>actualMaximumDate){//若自动增加的天数大于实际天数,循环终止
return;
}
if(days==day){//若指定的天数与当前自动增加的天数一样,标识出来打印
System.out.print("*"+days+"\t");
}else{//若指定的天数与当前自动增加的天数不一样,正常打印
System.out.print(days+"\t");
}
days++;
}
} }
}

  

通过学习Date和Calendar时写的日历的更多相关文章

  1. java基础1.5版后新特性 自动装箱拆箱 Date SimpleDateFormat Calendar.getInstance()获得一个日历对象 抽象不要生成对象 get set add System.arrayCopy()用于集合等的扩容

    8种基本数据类型的8种包装类 byte Byte short Short int Integer long Long float Float double Double char Character ...

  2. 学习java窗口基本操作时无聊写的

    学习java窗口基本操作时无聊写的 就当记录 代码如下: package day08; import java.awt.BorderLayout;import java.awt.Color;impor ...

  3. 第28天学习打卡(Date和Calendar类 基本类型的包装类 集合 增强for循环 )

    Date和Calendar类 简介 日期和日历类,用于操作日期相关信息. 构造方法 Date(): 构造一个日期对象,当前系统时间,精确到毫秒. Date(long): 构造一个日期对象,时间为自&q ...

  4. JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算

    JAVA之旅(二十三)--System,RunTime,Date,Calendar,Math的数学运算 map实在是太难写了,整理得我都晕都转向了,以后看来需要开一个专题来讲这个了,现在我们来时来学习 ...

  5. java时间类Date、Calendar及用法

    对于时间类,这篇主要说明各种现实情况下如何取值,怎么定向取值,得到自己想要的时间参数.在java中时间类主要有Date.Calendar,暂时只介绍 java.util.*下的时间类,对于java.s ...

  6. java日期类型转换总结date timestamp calendar string

    用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式.         Timestamp转化为String: S ...

  7. Java:Date、Calendar、Timestamp的使用

    一.Java.util.Date 该对象包含了年月日时分秒信息.具体使用如下代码: //String 转换为Date private static void dateDemo() throws Par ...

  8. Java:Date、Calendar、Timestamp的区别、相互转换与使用【转载】

    1 Java.util.Date 包含年.月.日.时.分.秒信息 包含年.月.日信息. 继承自java.util.Date.在数据库相关操作中使用,如rs.getDate,ps.setDate等.rs ...

  9. java日期和时间Date、Calendar、SimpleDateFormat

    1       时间和日期 1.1      日期类Date和格式化SimpleDateFormat 日期使用过程中需要将日期Date对象转化为字符串,或者将字符串形式的日期转化为日期Date对象.可 ...

随机推荐

  1. 浅谈jQuery宽高及其应用

    [前言] 今天讲了讲jQuery各种元素宽高的获取和设置,下面简单总结下,希望对各位小伙伴有所帮助 [主体] 补充知识点: (1)width()返回结果无单位,css("width" ...

  2. ajax异步请求详解

    1.XMLHttpRequst的出现才有了异步处理 2.创建XmlHttpRequest对象 var request=new XMLHttpRequest(); 注意:如果要兼容IE6以下浏览器则需要 ...

  3. css3 background-clip和background-origin 区别

    在css3中,background-clip和background-origin它们2个的功能大致相同,但又有些细微差别. 1.background-clip:规定背景的绘制区域,当背景是纯颜色时与图 ...

  4. python爬虫16 | 你,快去试试用多进程的方式重新去爬取豆瓣上的电影

    我们在之前的文章谈到了高效爬虫 在 python 中 多线程下的 GIL 锁会让多线程显得有点鸡肋 特别是在 CPU 密集型的代码下 多线程被 GIL 锁搞得效率不高 特别是对于多核的 CPU 来说 ...

  5. DFA最小化实例

    原始DFA如下图所示 最小化的定义:1.没有多余的状态(死状态):2.没有两个状态是相互等价的: 两个状态等价的含义:1.兼容性(一致性)——同是终态或同是非终态:2.传播性(蔓延性)——从s出发读入 ...

  6. c# SQL事务

    SQL事务执行 SqlTransaction   sqlTransaction   =   sqlConnection.BeginTransaction();    SqlCommand   sqlC ...

  7. Django——1 环境搭建

    Django 什么是Django 使用前的准备工作 新建项目 开启服务器 新建APP 简单实战 什么是Django框架 http服务器:用来接受用户请求,并将请求转发给web应用框架进行处理.Web应 ...

  8. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 G. Xor

    There is a tree with nn nodes. For each node, there is an integer value a_ia​i​​, (1 \le a_i \le 1,0 ...

  9. SecureCRT的设置和美化

    一  . SecureCRT 7.1  的 安装     http://liufei888.blog.51cto.com/2625545/1306231 1.下载注册机SecureCRT.v.6.7. ...

  10. 233 Matrix 矩阵快速幂

    In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233 ...