通过学习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对象.可 ...
随机推荐
- json和pickle的序列化
PICKle模块:
- C++ Primer(第4版)-学习笔记-第1部分:基本语言
第1章 快速入门 每个C++程序都包含一个或多个函数,而且必须有一个命名为main. main函数是唯一被操作系统显式调用的函数,main函数的返回值必须是int或者void(无返回值) 函数体是函 ...
- jQuery练习:表单模态框
代码:基于事件冒泡原理和事件委托 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta cha ...
- 《AlwaysRun!》第八次团队作业:Alpha冲刺 第二天
项目 内容 这个作业属于哪个课程 老师链接 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 Always Run! 作业学习目标 (1)掌握软件测试基础技术. ( ...
- 暑假集训D15总结
考试 日常爆炸= = T1数据背锅,回天乏力 推了两个小时的T2竟然莫名RE,我也是服了 T3考试时就没读懂题,做个鬼啊 今天一直在写某奇怪的技术贴,竟然没有写题解(手动滑稽) 希望明天不要乱炸吧 博 ...
- Linux中安装MongoDB出现的问题记录
mongoDB安装完成后,运行sudo service mongod start 查看程序状态:ps ajx | grep mongod ,启动失败 查看失败信息提示,终端命令:tail -f / ...
- HTML5:去除IE10中输入框和密码框的X按钮和小眼睛
在IE10和之后的IE版本中,当在输入框和密码框中输入的时候,后面会自动出现X按钮和小眼睛,如下图所示: 令人苦恼的是,这个效果只有IE才有,其它浏览器是没有这个功能的.为了统一,我们就需要去掉这个 ...
- [RxJS] AsyncSubject and ReplaySubject - Learn the Differences
We can use Subject as Observable and Observer: // Subject should be only used to emit value for priv ...
- 使用Linq 查询数据 构建对象 select new{}
linq 查询数据 /// <summary> /// 汽车品牌及车型 /// </summary> /// <returns></returns> p ...
- SolrCloud 分布式集群部署步骤
https://segmentfault.com/a/1190000000595712 SolrCloud 分布式集群部署步骤 solr solrcloud zookeeper apache-tomc ...