小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.线 ...
随机推荐
- VS2013无法加载JSON格式
js中通过$.getJSON加载.json 文件时,报如下错误: 解决方案:dos命令中打开 IIS Express ,执行如下命令: appcmd set config /section:stat ...
- python之路-Day3
字典 dic{key:value} 元组与列表相似,唯一就是不能修改dic = {'name':'alex','age':18}查询print(dic['name']) #会报错get方法查询,查询之 ...
- P4基函数
July , P4 syms p1 p2 p3 phi(:,) = /*p1.*(*p1-).*(*p1-).*(*p1-); phi(:,) = /*p2.*(*p2-).*(*p2-).*(*p2 ...
- Android菜鸟成长记12 -- ORMLite的简单使用
在我们的开发中,为了提高开发效率,我们一般都会使用到框架,ormilte则是我们必不可少的数据库框架. 对于ORMLite我也是今天才刚刚接触,我们先从一个简单的项目来了解它吧. ORMLite ja ...
- bat调用bat的一个巨坑
[一个巨坑] a.bat的内容:echo 1b.batecho 2执行结果:运行a.bat时,输出1,然后调用b.bat, 但是 echo 2 显示不出来. bat怎么调用bat文件并返回? 例如主文 ...
- Altium Designer PCB双面板制作打印操作步骤
Altium Designer PCB双面板制作打印操作步骤百度知道:http://jingyan.baidu.com/article/335530da83441c19cb41c3db.html?st ...
- 【补充版】HashMap(根据value筛选查找)
HashMap查找之根据Value查找 一般大家都知道对于HashMap而言都是通过key来进行查找.找到了key自然对应的value也就一并找到了.但是有些情况下就需要通过value来进行判断查找. ...
- PHP入门篇
一.PHP-什么是变量 变量是用于存储值的,我们命令服务器去干活的时候,往往需要产生一些数据,需要临时性存放起来,方便取用.我们也可以理解为,变量就像一个购物袋,我们可以用来装苹果.榴莲(当然也可以 ...
- laravel(二):laravel基本入门 看到Hello Laravel
1.Hello World 首先,我们来添加一些文字,在页面中显示.为了能访问网页,要启动程序服务器. $ php artisan serve 上述命令会启动 PHP 内建的开发服务器,要查看程序,请 ...
- Git学习(四)——分支管理
一.创建与合并分支 1.创建分支 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点.每次提交 ,mast ...