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. SLF4J和Logback和Log4j和Logging的区别与联系

    本文转载自:一个著名的日志系统是怎么设计出来的?(作者:刘欣) 前言 Java帝国在诞生之初就提供了集合.线程.IO.网络等常用功能,从C和C++领地那里吸引了大量程序员过来加盟,但是却有意无意地忽略 ...

  2. 【 Codeforces Global Round 1 B】Tape

    [链接] 我是链接,点我呀:) [题意] x轴上有m个连续的点,从1标号到m. 其中有n个点是特殊点. 让你用k段区间将这n个点覆盖. 要求区间的总长度最小. [题解] 一开始假设我们需要n个胶带(即 ...

  3. 最小生成树prime算法模板

    #include<stdio.h> #include<string.h> using namespace std; int map[505][505]; int v, e; i ...

  4. PatentTips - Substitute virtualized-memory page tables

    BACKGROUND Many computer systems utilize virtualized memory for security, stability and/or other pur ...

  5. Spring MVC Beginner's Guide--应该看第二次

    第一遍,就差WEBFLOW知识点没过了.. 真的值得好好再看第二次呢.. 样例工程算是比较多的啦. 学到真的不少..

  6. 【ACM】nyoj_132_最长回文子串_201308151713

    最长回文子串 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 输入一个字符串,求出其中最长的回文子串.子串的含义是:在原串连续出现的字符串片段.回文的含义是:正着看和 ...

  7. 络谷 P2865 [USACO06NOV]路障Roadblocks

    P2865 [USACO06NOV]路障Roadblocks 题目描述 Bessie has moved to a small farm and sometimes enjoys returning ...

  8. [转]十五天精通WCF——第三天 client如何知道server提供的功能清单

     通常我们去大保健的时候,都会找姑娘问一下这里能提供什么服务,什么价格,这时候可能姑娘会跟你口述一些服务或者提供一份服务清单,这样的话大 家就可以做到童嫂无欺,这样一份活生生的例子,在wcf中同样是一 ...

  9. 实现MVC.NET 5的国际化

    实现国际化有三种做法: 创建资源文件. 每种语言设置一套单独的View. 1 + 2. 通常而言,第一种方法的可维护性是最高的.因为随着项目的规模的扩大,为每种语言设置一套单独的View,前期的工作量 ...

  10. Android Studio第一次启动的Fetching android sdk component information的问题

    1)进入刚安装的Android Studio文件夹下的bin文件夹.找到idea.properties文件,用文本编辑器打开. 2)在idea.properties文件末尾加入一行: disable. ...