java中日历代码的实现
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中日历代码的实现的更多相关文章
- 【Java基础】2、Java中普通代码块,构造代码块,静态代码块区别及代码示例
Java中普通代码块,构造代码块,静态代码块区别及代码示例.Java中普通代码块,构造代码块,静态代码块区别及代码示例 执行顺序:静态代码块>静态方法(main方法)>构造代码块>构 ...
- Java 中静态代码块初始化问题测试
Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
- Java中普通代码块,构造代码块,静态代码块执行顺序
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
- (转)java中静态代码块的用法 static用法详解
一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来 ...
- java中静态代码块的用法 static用法详解(转)
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...
- java中的代码块执行顺序
/* 代码块:在Java中,使用{}括起来的代码被称为代码块. 根据其位置和声明的不同,可以分为 局部代码块:局部位置,用于限定变量的生命周期. 构造代码块:在类中的成员位置,用{}括起来的代码.每次 ...
- 关于java中普通代码块、构造代码块与静态代码块
1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块. *普通 ...
- 【转】java中静态代码块的用法 static用法详解
原文网址:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html (一)java 静态代码块 静态方法区别一般情况下,如 ...
随机推荐
- [R]R下as.Date()函数的坑
问题描述: 在本地使用as.Date()函数从POSIXct类型中提取date时,出现了日期不一致的错误.导致处理数据时,总是出问题. 还好被领导发现数据有误,不然这个bug不知道还要潜伏多久.尽管如 ...
- 显式Intent和隐式Intent
http://blog.csdn.net/qs_csu/article/details/7995966 对于明确指出了目标组件名称的Intent,我们称之为“显式Intent”. 对于没有明确指出目标 ...
- [BZOJ2803][Poi2012]Prefixuffix
2803: [Poi2012]Prefixuffix Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 219 Solved: 95[Submit][St ...
- 【Oracle】多次提交造成性能慢及处理方法
[问题背景] 2013-08-02 为某地市做了1个脚本用于帮客户账户添加一个新的账本.犯了一个很二的错,存储过程如下(SQL记录用户以后查询),一晚上只执行了190W数据 脚本如下 数据库中总共有5 ...
- IEqualityComparer<T>
在linq中使用union和distinct都不起作用,结果发现必须传入一个实现了IEqualityComparer<T>的比较器 public class CompareUser : I ...
- 去掉inline-block元素默认间距的几种方法
方法1:使用负margin值一般是-3px,部分浏览器可能不同,不太推荐使用. 方法2:去掉多余空格将元素紧挨着写去掉多余空格,但降低了可读性. 方法3:使用font-size:0在外层父元素加上fo ...
- Install the Maven in your computer
While, this blog will talk about installing the Maven in your computer. There are three steps as fol ...
- C语言(3)
C语言(3)----数据输入 输入时的关键字为scanf.如我们要从键盘上输入一个数,放在变量a里面,则可以写成scanf("%d",&a); "&&qu ...
- mapreduce作业状态一直是ACCEPTED
搭建yarn环境后,执行 hadoop/bin/hadoop jar hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar ...
- 一个网页抓取的类支持get+post+cookie存储
前段时间提取了一个工具类,分享给大家: <?php class httpconnector { private $curl; private $cookie; private $kv; func ...