java 简易日历表
在页面上输出1900年以后任意一年的简易日历表
package text3;
import java.util.Scanner;
public class MyCalendar {
public static void main(String[] args){
String Weeks = " Su Mo Tu We Th Fr Sa "; //星期列表
int i,j; //循环控制变量
System.out.println("Please input the year you want to research:");
int year = new Scanner(System.in).nextInt();
//用于计算所给定年份1月1日为星期几,初值为1900年的1.1为周一
int Ospa3 = 1;
//从1900年开始,计算其后每一年的1.1为周几,直到求出指定年份的1.1日
for(i = 1;i < year;i++){
//若是闰年,其后年份的1.1日加两天,否则加一天
if(i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
Ospa3 += 2;
else
Ospa3++;
}
//由于七天为一周,所以Ospa3的最终值应为模7的余数
Ospa3 %= 7;
//输出日历第一行提示信息
System.out.println("\t\t\tCalender of " + year);
//输出星期列表,每行显示三个星期
i = 1;
while(i <= 3){
System.out.print(Weeks);
i++;
}
System.out.println("");
//存放连续三个月的1日对应的星期和当月的总天数
int spa1 = 0,spa2 = 0,spa3 = 0,cou1 = 0,cou2 = 0,cou3 = 0;
//存放连续三个月的当前日期
int day1 = 0,day2 = 0,day3 = 0;
//判断当年是否为闰年,计算二月份的天数
boolean leap = year %4 ==0 && year % 100 != 0 || year % 400 == 0;
for(j = 1;j <= 28;j++){ //????为什么是28
if((j-1)%7 == 0){
day1 = 1;
day2 = 1;
day3 = 1; //设置连续3个月的日期输出均从1号开始
//分别设置一年中每个月1日的星期,和当月的总天数
switch(j/7){
case 0:
spa1 = Ospa3;
cou1 = 31; //1月
spa2 = (spa1 + cou1) % 7;
cou2 = leap ?29:28; //2月
spa3 = (spa2 + cou2) % 7;
cou3 = 31; //3月
Ospa3 = spa3;
break;
case 1:
spa1 = (Ospa3 + cou3) % 7;
cou1 = 30; //4月
spa2 = (spa1 + cou1) % 7;
cou2 = 31; //5月
spa3 = (spa2 + cou2) % 7;
cou3 = 30; //6月
Ospa3 = spa3;
break;
case 2:
spa1 = (Ospa3 + cou3) % 7;
cou1 = 31; //7月
spa2 = (spa1 + cou1) % 7;
cou2 = 31; //8月
spa3 = (spa2 + cou2) % 7;
cou3 = 30; //9月
Ospa3 = spa3;
break;
case 3:
spa1 = (Ospa3 + cou3) % 7;
cou1 = 31; //10月
spa2 = (spa1 + cou1) % 7;
cou2 = 30; //11月
spa3 = (spa2 + cou2) % 7;
cou3 = 31; //12月
break;
}
}
//在屏幕上输出日历,一行显示3个星期共输出21列
for(i = 1;i <= 21; i++){
if ((i-1)/7 == 0) //每一行的前七列输出第一个月
System.out.print(spa1--<=0 && day1 <= cou1? day1 < 10?" 0"+
day1++ :" " + day1++ :" ");
else if((i - 1)/7 == 1)
System.out.print(spa2--<=0 && day2 <= cou2? day2 < 10?" 0"+
day2++ :" " + day2++ :" ");
else
System.out.print(spa3--<=0 && day3 <= cou3? day3 < 10?" 0"+
day3++ :" " + day3++ :" ");
if(i % 7 == 0)
System.out.print(" ");//每行中月份之间的空格
}
System.out.println(" "); //换行
}
}
}

java 简易日历表的更多相关文章
- java简易编辑器
package peng_jun; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swi ...
- 数据结构——单链表java简易实现
巩固数据结构 单链表java实现 单链表除了表尾 每个几点都有一个后继 结点有数据和后继指针组成 通过构建表头和表尾(尾部追加需要)两个特殊几点 实现单链表的一些操作,代码如下 package co ...
- 补码一位乘法 Booth算法 Java简易实现
本文链接:https://www.cnblogs.com/xiaohu12138/p/11955619.html. 转载,请说明出处. 本程序为简易实现补码一位乘法,若代码中存在错误,可指出,本人会不 ...
- Java简易日历的实现
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...
- mongo数据管理java简易版
mongo是搭建在局域网服务器上的,处理起来比较麻烦,于是自己写了个简单的处理工具. 如果有对java操作mongo不太了解的也可以在这里看下简单的示例. 只有增删改查的功能,而且只支持json格式的 ...
- 纯Java——简易高并发框架
转自:https://blog.csdn.net/MonkeyDCoding/article/details/81369610 0.源代码github-简易高并发框架 注:本篇博客知识来自于网课. 1 ...
- java简易excel导入导出工具(封装POI)
Octopus 如何导入excel 如何导出excel github项目地址 Octopus Octopus 是一个简单的java excel导入导出工具. 如何导入excel 下面是一个excel文 ...
- java简易DVD影片管理系统—面向对象
public class DvdSet { String name [] =new String[15]; // DVD电影名称 String date [] =new String[15]; //D ...
- Java打印日历表
今天来吐槽一下Java的Calendar类的使用问题,反正我是弄了半天. 首先是,遇到一个问题,输入年份和月份,需要打印这个月的日历,网上有不少代码,但我用了几个感觉都不是很靠谱. 然后经过一番探索, ...
随机推荐
- 开源项目 12 ServiceStack.OrmLite
using ServiceStack; using ServiceStack.DataAnnotations; using ServiceStack.OrmLite; using ServiceSta ...
- 如何防止CSRF攻击?
CSRF攻击 CSRF漏洞的发生 相比XSS,CSRF的名气似乎并不是那么大,很多人都认为CSRF“不那么有破坏性”.真的是这样吗? 接下来有请小明出场~~ 小明的悲惨遭遇 这一天,小明同学百无聊赖地 ...
- nodejs之mysql查询
示例代码中的mysql版本 2.14.1 参考代码 /** * 测试mysql连接 */ var mysql = require('mysql'); var connection = mysql.cr ...
- 微信小程序根据状态换图
在index.wxml中添加图片 <image bindtap="click" src="{{show?'/images/.png':'/images/.png'} ...
- python中的base64加密解密
介绍 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法.可查看RFC2045-RFC2049,上面有MIME的详细规范. ...
- Linux+Apache环境下安装SSL证书
一.安装证书 (温馨提示:安装证书前请先备份您需要修改的服务器配置文件) 1.确认证书文件及证书路径. 例证书文件为:zzidc.com.jks,放置目录为Tomcat的conf目录下. 2.配置 ...
- Artifact tlks: com.intellij.javaee.oss.admin.jmx.JmxAdminException: com.intellij.execution.ExecutionException: E:\IDEAspace\tlksArtfacts\tlks.war not found for the web module.
传送门:https://www.cnblogs.com/eatkid/p/8064763.html intellij idea tomcat 启动不生成war包 intellij idea tom ...
- tomcat启动控制台中文乱码问题解决方法
tomcat启动控制台中文乱码问题解决方法,修改tomcat安装路径/conf/logging.properties文件 java.util.logging.ConsoleHandler.encodi ...
- Nim游戏博弈(收集完全版)
Nim游戏证明参见: 刘汝佳训练指南P135-写的很酷! 知乎上SimonS关于Nim博弈的回答! Nim游戏的概述: 还记得这个游戏吗? 给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠, ...
- 【深入学习linux】系统分区与格式化
分区:把大硬盘分为小的逻辑分区 格式化:写入文件系统 分区设备文件名:给每个分区定义设备文件名 挂载:给每个分区分配挂载点 分区->格式化->取名->分配挂载点(WINDOW下的盘弧 ...