小JAVA大世界之万年历
import java.util.Scanner;
public class Calendar {
public static void main(String[] args) {
// 万年历
int year;// 保存输入的年
int month;// 保存输入的月
System.out.println("请输入年份:");
Scanner key = new Scanner(System.in);
year = key.nextInt();
System.out.println("请输入月份:");
month = key.nextInt();
boolean flag;// 闰年保存true,平年保存false
int days = 0; // 保存指定月的天数
int totaldays = 0;// 保存总天数
// 计算输入的年是否是闰年
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
flag = true;
} else {
flag = false;
}
if (flag) {
System.out.println(year + "是闰年");
} else {
System.out.println(year + "不是闰年");
}
// 计算1900年1月1日至输入的年份的总天数
for (int i = 1900; i < year; i++) {
if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0)) {
totaldays += 366;
} else {
totaldays += 365;
}
}
// 计算输入月份之前的的天数和
for (int i = 1; i <=month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if (flag) {
days = 29;
} else {
days = 28;
}
break;
default:
System.out.println("输入的月份有误");
}
//输入月的天数保存到days中,但没有累加进去
if(i!=month){
totaldays += days;
}
}
// 计算星期几,其实就是前面制表符\t的个数。公式是:1+(总天数%7)
int week;
week= 1 + totaldays % 7;
if(week==7){
week=0;//代表星期天,0个\t
}
System.out.println("*******************万年历*******************************");
System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
//先打印\t
for (int i = 0; i < week; i++) {
System.out.print("\t");
}
for (int i = 1; i <=days; i++) {
System.out.print(i + "\t");
if ((i + week) % 7 == 0) {
System.out.println();
}
}
}
}
小JAVA大世界之万年历的更多相关文章
- 小JAVA大世界之程序建模跳蚤实验
package com.chigoe;//房子类class House { private int m;// 保存行数 private int n;// 保存列数 private int[][] a; ...
- Java大世界
"java越来越过份了." php狠狠的说,他转头看着C:"C哥,您可是前辈,java最近砸了我不少场子,你老再不出来管管,我怕他眼里就没有您了啊." C哥吸烟 ...
- HTML5 3D Google搜索 小盒子 大世界
HTML5真是能让人想象万千,居然动起了Google搜索的主意,它利用HTML5技术将Google搜索放到了一个小盒子里,弄起了3D搜索.随着鼠标移动,HTML5 3D搜索盒子也就转动,非常立体.点击 ...
- docker --Dockerfile--最小java环境
# AlpineLinux open jre 8FROM alpine:latest # Install cURLRUN echo -e "https://mirror.tuna.tsing ...
- 「小程序JAVA实战」微信小程序简介(一)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-01/ 一直想学习小程序,苦于比较忙,加班比较多没时间,其实这都是理由,很多时候习惯了搬砖,习惯了固 ...
- 微信小程序 教程及示例
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有,转载请联系作者获得授权.微信小程序正式公测, ...
- Java日志规范
前言 一个在生产环境里运行的程序如果没有日志是很让维护者提心吊胆的,有太多杂乱又无意义的日志也是令人伤神.程序出现问题时候,从日志里如果发现不了问题可能的原因是很令人受挫的.本文想讨论的是如何在Jav ...
- [改善Java代码]线程优先级只使用三个等级
线程的优先级(priority)决定了线程获得CPU运行的机会,优先级越高获得的运行机会越大,优先级越低获得的机会越小.Java的线程有10个级别(准确的说是11个级别,级别为0的线程是JVM,应用程 ...
- Java中的多线程总结(转)
1.多线程概述 当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程.主要以下几个优点: 线程之间很容易实现共享内存 创建线程代价较小 Java语言内置多线程功能支持 2.线 ...
随机推荐
- protobuf框架简介
protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台.google 提供了三种语言的实现:java.c+ ...
- Sql Server中不常用的表运算符之APPLY(1)
写在这个系列的前面: 就像他们的名字一样,作为一个表运算,他们用来运算左表和右表.JOIN也是一个表运算符,不过他太常用了. APPLY: 将右表表达式应用在左表的每一行上. APPLY是Sql200 ...
- maven 的使用
下载Maven:http://maven.apache.org/ 解压 将解压目录的bin 子目录配置到 PATH中 4) 在命令行下运行 mvn -version 或者 mvn -v 来测试是否 ...
- app跳转openURL,兼容方法
- (void)openScheme:(NSString *)scheme { UIApplication *application = [UIApplication sharedApplicat ...
- uitableview性能优化(转)
这个感觉写的很好 收藏一下 以备后用 转自 http://www.cnblogs.com/pengyingh/articles/2354714.html 在iOS应用中,UITableView应该是使 ...
- 使用dd命令克隆整个系统(转)
神奇的ghost的原理是什么呢?不就是数据复制吗?Linux下的dd命令不就是最强大的数据复制工具! 既然如此,我为什么要使用g4l这样复杂的工具呢?一条dd命令不就可以帮我实现任意 ...
- 图片缩放应用(nearest / bilinear / three-order interpolate)
typedef xPixel PIXELCOLORRGB; double Sinxx(double value){ if (value < 0) value = -value; if (valu ...
- as3自定义事件
package EventPackage { import flash.events.Event; /** * * @author tqr <br /> * 创建时间:2015-2-6 下 ...
- POJ3061 尺取法
题目大意:从给定序列里找出区间和大于等于S的最小区间的长度. 前阵子在zzuli OJ上见过类似的题,还好当时补题了.尺取法O(n) 的复杂度过掉的.尺取法:从头遍历,如果不满足条件,则将尺子尾 部增 ...
- WCF通过SVCUtil.exe生成客户端代理类和配置文件(转)
WCF服务调用通过两种常用的方式: 1:一种是借助代码生成工具SvcUtil.exe或者添加服务引用的方式. 2:一种是通过ChannelFactory直接创建服务代理对象进行服务调用. 本文只针对通 ...