1 import java.util.Scanner;
com.lv.calendarWatch//包名
/*
* 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确
* 1.1900年1月1号开始
* 2.星期 : 直接用总天数对7求余数
* 3.以\t来个开
*/
public class Demo9 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub Demo9 demo = new Demo9();
Scanner keyInput =new Scanner(System.in);
System.out.println("请输入你想要查的年");
int key1 = keyInput.nextInt();
System.out.println("请输入你想要查的月份");
int key2 = keyInput.nextInt();
demo.show(key1,key2); } //定义一个工具方法:判断平年还是闰年
public boolean isLeapYear(int year){ if(year % 400 == 0 || (year % 4==0 && year % 100 != 0)){ return true;
} return false;
} //计算输入年份下,月份的总天数 1900 public int getTotalDateFrom(int year , int month){ //1.定年份的总天数
int totalDate = 0;//1900到你输入的年份的总天数 2016 1900 - 1903 = 3
for(int i= 1900 ; i < year ;i++){ if(isLeapYear(i)){ // 闰年 totalDate += 366;
}else { totalDate += 365;
}
} //2.计算月份的天数
for(int i = 1 ; i< month ;i++){ totalDate += getDayOfMonth(year, i);
} return totalDate; } public int getDayOfMonth(int year , int month){ switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: return 31; case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if(isLeapYear(year)){ return 29;
}else { return 28;
}
default:
return 30;
}
} public int printSpace(int year , int month){ return getTotalDateFrom(year, month) % 7;
} public void print(int year , int month){ int countSpac = printSpace(year, month) + 1; // 空格的个数
int count = 0; //定义一个计数
for(int i = 1; i<=countSpac; i++){
count++;
System.out.print("\t");
} //2.打印日期
for(int i = 1 ; i<=getDayOfMonth(year, month);i++){ if(count % 7 == 0){ System.out.println();
}
count++;
System.out.print(i+"\t"); } } public void show(int year , int month){ System.out.println("******************"+year+"****"+month+"***************************");
System.out.println("======================================================");
System.out.println("日\t一\t二\t三\t四\t五\t六");
System.out.println("======================================================");
print(year, month);
System.out.println();
} }

运行结果如下所示:

java中日历代码的实现的更多相关文章

  1. 【Java基础】2、Java中普通代码块,构造代码块,静态代码块区别及代码示例

    Java中普通代码块,构造代码块,静态代码块区别及代码示例.Java中普通代码块,构造代码块,静态代码块区别及代码示例 执行顺序:静态代码块>静态方法(main方法)>构造代码块>构 ...

  2. Java 中静态代码块初始化问题测试

    Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...

  3. Java中普通代码块,构造代码块,静态代码块区别及代码示例

    //执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...

  4. Java中普通代码块,构造代码块,静态代码块执行顺序

    //执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...

  5. (转)java中静态代码块的用法 static用法详解

    一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来 ...

  6. java中静态代码块的用法 static用法详解(转)

    (一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...

  7. java中的代码块执行顺序

    /* 代码块:在Java中,使用{}括起来的代码被称为代码块. 根据其位置和声明的不同,可以分为 局部代码块:局部位置,用于限定变量的生命周期. 构造代码块:在类中的成员位置,用{}括起来的代码.每次 ...

  8. 关于java中普通代码块、构造代码块与静态代码块

    1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块. *普通 ...

  9. 【转】java中静态代码块的用法 static用法详解

    原文网址:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html (一)java 静态代码块 静态方法区别一般情况下,如 ...

随机推荐

  1. HDU5727 Necklace(枚举 + 二分图最大匹配)

    题目大概说有n个yang珠子n个yin珠子,要交替串成一个环形项链,有些yang珠子和某个yin珠子相邻这个yang珠子会不高兴,问最少有几个yang珠子不高兴. 自然会想到直接用状压DP去解,转移很 ...

  2. Cache的使用

    公共方法Add 将指定项添加到 Cache 对象,该对象具有依赖项.过期和优先级策略以及一个委托(可用于在从 Cache 移除插入项时通知应用程序). Equals(从 Object 继承) 已重载. ...

  3. 【原】iOS多线程之异步任务+并行队列情况与异步任务+串行队列(主队列)情况

    异步任务+并行队列 把异步任务放到并行队列进行执行,异步任务会在不同的线程中执行. /*异步执行+并行队列*/ - (IBAction)clickBasic1:(UIButton *)sender { ...

  4. 数据仓库原理<2>:数据仓库系统的体系结构

    1. 引言 本篇主要讲述数据仓库系统的体系结构与组成要素.数据集市与数据仓库之间的关系.元数据的定义与作用. 在上一篇,笔者介绍了数据仓库的定义: "数据仓库是一个面向主题的.集成的.不可更 ...

  5. awk 学习

    1. awk用例 今天用awk来统计一个字符出现的次数,总是比实际多一个.查了半天才发现问题所在. 文本tt.txt如下: <lst name="responseHeader" ...

  6. flexbox布局的兼容性

    http://ayqy.net/blog/flexbox布局的兼容性/ 写在前面 flex布局早在2009年就有了,而现在是2015年6月8日,使用最新的flex语法会发现支持程度并不好,即使是在“高 ...

  7. UVA 11754 (暴力+中国剩余定理)

    题目链接: http://www.bnuoj.com/v3/problem_show.php?pid=20172 题目大意:有C个模方程,每个方程可能有k余数,求最小的S个解. 解题思路: 看见模方程 ...

  8. CSS雪碧,即CSS Sprite 简单的例子

    CSS Sprite生成工具 http://pan.baidu.com/s/1gdGQwiJ 工具可将多幅图片整合一张,并生成CSS. HTML代码 <style> .img{backgr ...

  9. HDU 2089 简单数位dp

    1.HDU 2089  不要62    简单数位dp 2.总结:看了题解才敲出来的,还是好弱.. #include<iostream> #include<cstring> #i ...

  10. About_AJAX_03

    以为AJAX只可以获取一个值呢,原来也是可以拼接的: function sendTopic(){ if(window.ActiveXObject){ xmlHttp = new ActiveXObje ...