package com.example.demo;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; @RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests { @Test
public void contextLoads() { setMonth("2018年02月"); } private Date str2Date(String str) {
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月");
return df.parse(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
} /**
* 设置月份
*/
private void setMonth(String Month) { Date month = str2Date(Month);
boolean isCurrentMonth = false;
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
//获取今天是多少号
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);
int todayWeekIndex = calendar.get(Calendar.DAY_OF_WEEK) - 1; Date cM = str2Date(getMonthStr(new Date()));
//判断是否为当月
if (cM.getTime() == month.getTime()) {
isCurrentMonth = true;
int selectDay = currentDay;//当月默认选中当前日
} else {
isCurrentMonth = false;
int selectDay = 0;
}
System.out.println("设置月份:" + getMonthStr(month) + " 今天" + currentDay + "号, 是否为当前月:" + isCurrentMonth);
calendar.setTime(month);
int dayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
//第一行1号显示在什么位置(星期几)
int firstIndex = calendar.get(Calendar.DAY_OF_WEEK) - 1;
int lineNum = 1;
//第一行能展示的天数
int firstLineNum = 7 - firstIndex;
int lastLineNum = 0;
int shengyu = dayOfMonth - firstLineNum;
while (shengyu > 7) {
lineNum++;
shengyu -= 7;
}
if (shengyu > 0) {
lineNum++;
lastLineNum = shengyu;
}
System.out.println(getMonthStr(month) + "月一共有" + dayOfMonth + "天,第一天的索引是:" + firstIndex + " 有" + lineNum +
"行,第一行" + firstLineNum + "个,最后一行" + lastLineNum + "个"); int days[][] = new int[5][7]; String weeks[] = {"星期-", "星期二", "星期三", "星期四", "星期五"}; for (int day = 0; day < dayOfMonth; day++) { int column = (day + firstIndex) % 7;
int row = (day + firstIndex) / 7;
days[row][column] = day + 1;
} for (int i = 0; i < weeks.length; i++) { System.out.print(weeks[i] + "\t"); }
System.out.println();
for (int i = 0; i < days.length; i++) {
for (int j = 0; j < days[i].length; j++) {
if (days[i][j] == 0)
System.out.print("\t");
else
System.out.print(days[i][j] + "\t");
} System.out.println();
} } /**
* 获取月份标题
*/
private String getMonthStr(Date month) {
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月");
return df.format(month);
} }

Calendar打印日历的更多相关文章

  1. Java中Calendar(日历)相关API举例

    Java中Calendar(日历)相关API举例,实现功能:输入一个年份和月份打印出这个月的日历. package calendarPrint; import java.util.Calendar; ...

  2. Python学习实践-----打印日历

    使用python语言实现在控制台打印日历 输入年.月.日 输出对应日历,指定的日数输出为'--' 程序没有做严格的输入验证,故输入整数即可. 以下为没有优化的源码: print_calendar.py ...

  3. Oracle打印日历功能

    Oracle用SQL打印日历 1.1  打印当月日历 , D, NULL)) SUN, , D, NULL)) MON, , D, NULL)) TUE, , D, NULL)) WED, , D,  ...

  4. 使用java 打印日历

    package hangshu; /* * 打印从1900年到2.year年的日历 */ import java.util.Scanner; public class Calender { publi ...

  5. C++ 实现的一个打印日历程序

    C++ 实现的一个打印日历程序 说明:总共有三个文件 1.month.h 为定义函数的头文件 2.month.cpp 为函数的实现代码 3.mainprog.cpp 为主函数的实现代码 month.h ...

  6. python打印日历

    #未优化的代码 1 #输出日历 def print_calendar(year,month,date = 1): month_dict = {':'July', ':'December'} #数字月份 ...

  7. Python实战练习——打印日历教程

    很长一段时间没有接触过C语言了,想来做这一行当已经有三两年了. 今天突然想起来以前用C语言在VC6上写代码的日子,想了想以前的一些实战练习. 所以今天打算用Python来写一个C语言以前练习的题目-日 ...

  8. 用java打印日历

    来自<java核心技术卷一> /** * Created by wangbin10 on 2019/1/3. * 打印当月日历 */ public class CalendarTest { ...

  9. python 打印日历

    import calendar as c'''x = c.monthcalendar(2017,11) 使用这个结果打印出日历 s = 1while s <= 7: print('周%d '%( ...

随机推荐

  1. __FILES__

    _FILE_ :被称为PHP魔术常量 ,返回当前执行PHP脚本的完整路径和文件名,包含一个绝对路径 1)dirname(__FILE___) 函数返回的是脚本所在在的路径.   比如文件 b.php ...

  2. React Native backgroundColor 的颜色值

    React Native 的 css 跟 web开发中css还是很相似的,其中 backgroundColor 支持的颜色值与 css 一致,为方便查找写在这里. 其他样式可以参考 CSS 样式网站 ...

  3. ItelliJ idea tomcat 配置

    用ItelliJ idea 开发javaWeb. 1. Idea 安装Tomcat 打开Idea,选择设置,并在设置中左边框中选择 Application Servers 点击中间空白框上面的 ’+‘ ...

  4. 【数据库(一)】SQL语言-表定义、查询

    基本模式定义+ SQL支持许多不同的完整性约束. not null, 在该属性上不允许空值 primary key 是否是是主码,主码必须非空且唯一 foreign key check(P),P是谓词 ...

  5. Go Example--组合函数

    package main import ( "fmt" "strings" ) func Index(vs []string, t string) int { ...

  6. linux子系统搭建python3

    我之前win10系统有py3,所以就没有下载,直接输入python ,就会进入python环境,但是,什么包都没有 安装pip $ wget https://bootstrap.pypa.io/get ...

  7. [JAVA]对象的别名问题

    对于JAVA的基本数据类型,a=b就是把b的内容复制给a.若接着又修改了a,对b是没有影响的. 但是在为对象“赋值”的时候,情况发生了变化.对一个对象进行操作时,我们真正操作的是对象的引用. 下面对两 ...

  8. OSS阿里云上传文件 前端js下载url跨域问题

    场景: 1.后端上传文件至阿里云OSS,返回得到一个URL. 2.前端用这个URL下载文件,ajax请求异常:No 'Access-Control-Allow-Origin' header is pr ...

  9. python3中的编码

    python2字符串编码存在的问题: 使用 ASCII 码作为默认编码方式,对中文处理不友好 把字符串分为 unicode 和 str 两种类型,将unicode作为唯一内码,误导开发者 python ...

  10. bvlc_reference_caffenet网络权值可视化

    一.网络结构 models/bvlc_reference_caffenet/deploy.prototxt 二.显示conv1的网络权值 clear; clc; close all; addpath( ...