通过学习Date和Calendar时写的日历
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时写的日历的更多相关文章
- 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 ...
- 学习java窗口基本操作时无聊写的
学习java窗口基本操作时无聊写的 就当记录 代码如下: package day08; import java.awt.BorderLayout;import java.awt.Color;impor ...
- 第28天学习打卡(Date和Calendar类 基本类型的包装类 集合 增强for循环 )
Date和Calendar类 简介 日期和日历类,用于操作日期相关信息. 构造方法 Date(): 构造一个日期对象,当前系统时间,精确到毫秒. Date(long): 构造一个日期对象,时间为自&q ...
- JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算
JAVA之旅(二十三)--System,RunTime,Date,Calendar,Math的数学运算 map实在是太难写了,整理得我都晕都转向了,以后看来需要开一个专题来讲这个了,现在我们来时来学习 ...
- java时间类Date、Calendar及用法
对于时间类,这篇主要说明各种现实情况下如何取值,怎么定向取值,得到自己想要的时间参数.在java中时间类主要有Date.Calendar,暂时只介绍 java.util.*下的时间类,对于java.s ...
- java日期类型转换总结date timestamp calendar string
用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式. Timestamp转化为String: S ...
- Java:Date、Calendar、Timestamp的使用
一.Java.util.Date 该对象包含了年月日时分秒信息.具体使用如下代码: //String 转换为Date private static void dateDemo() throws Par ...
- Java:Date、Calendar、Timestamp的区别、相互转换与使用【转载】
1 Java.util.Date 包含年.月.日.时.分.秒信息 包含年.月.日信息. 继承自java.util.Date.在数据库相关操作中使用,如rs.getDate,ps.setDate等.rs ...
- java日期和时间Date、Calendar、SimpleDateFormat
1 时间和日期 1.1 日期类Date和格式化SimpleDateFormat 日期使用过程中需要将日期Date对象转化为字符串,或者将字符串形式的日期转化为日期Date对象.可 ...
随机推荐
- 浅谈jQuery宽高及其应用
[前言] 今天讲了讲jQuery各种元素宽高的获取和设置,下面简单总结下,希望对各位小伙伴有所帮助 [主体] 补充知识点: (1)width()返回结果无单位,css("width" ...
- ajax异步请求详解
1.XMLHttpRequst的出现才有了异步处理 2.创建XmlHttpRequest对象 var request=new XMLHttpRequest(); 注意:如果要兼容IE6以下浏览器则需要 ...
- css3 background-clip和background-origin 区别
在css3中,background-clip和background-origin它们2个的功能大致相同,但又有些细微差别. 1.background-clip:规定背景的绘制区域,当背景是纯颜色时与图 ...
- python爬虫16 | 你,快去试试用多进程的方式重新去爬取豆瓣上的电影
我们在之前的文章谈到了高效爬虫 在 python 中 多线程下的 GIL 锁会让多线程显得有点鸡肋 特别是在 CPU 密集型的代码下 多线程被 GIL 锁搞得效率不高 特别是对于多核的 CPU 来说 ...
- DFA最小化实例
原始DFA如下图所示 最小化的定义:1.没有多余的状态(死状态):2.没有两个状态是相互等价的: 两个状态等价的含义:1.兼容性(一致性)——同是终态或同是非终态:2.传播性(蔓延性)——从s出发读入 ...
- c# SQL事务
SQL事务执行 SqlTransaction sqlTransaction = sqlConnection.BeginTransaction(); SqlCommand sqlC ...
- Django——1 环境搭建
Django 什么是Django 使用前的准备工作 新建项目 开启服务器 新建APP 简单实战 什么是Django框架 http服务器:用来接受用户请求,并将请求转发给web应用框架进行处理.Web应 ...
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 G. Xor
There is a tree with nn nodes. For each node, there is an integer value a_iai, (1 \le a_i \le 1,0 ...
- SecureCRT的设置和美化
一 . SecureCRT 7.1 的 安装 http://liufei888.blog.51cto.com/2625545/1306231 1.下载注册机SecureCRT.v.6.7. ...
- 233 Matrix 矩阵快速幂
In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233 ...