阶段1:1900年1月1日-2015年 相隔多少天(瑞年366,平年365)
~~~
public class Year {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2015;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
System.out.println("1900年1月1日-2015年 相隔天"+sum+"天");//42368
}
}
~~~
阶段2:1900年1月1日-2016年5月7日 相隔多少天(瑞年366,平年365)
~~~
public class Year2 {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2015;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<=4;m++){
if(m==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=7;
System.out.println(sum+"天");//42496
}
}
~~~
阶段3:(每月第一天为星期几) 1900年1月1日--2012年9月1日到现在一共多少天,对7进行取模,结果就为星期几
~~~
public class Year3 {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2011;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<=8;m++){
if(m==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=1;
System.out.println("星期"+(sum%7));//星期6
}
}
~~~
阶段4:输出2012年9月第一天的格式
~~~
public class Year4 {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2011;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<=8;m++){
if(m==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=1;
int wekday=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
//确定每月第一天前面的空格
for(int i=1;i<=wekday;i++){
System.out.print("\t");
}
System.out.print("1");
}
~~~
![](https://box.kancloud.cn/dffe8abe0dcb8cae69dd30dba5ae8094_656x79.png)
阶段5:输出2012年9月的格式
~~~
public class Year5 {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2011;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<=8;m++){
if(m==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=1;
int wekday=sum%7;//星期几
System.out.println("日\t一\t二\t三\t四\t五\t六");
//确定每月第一天前面的空格
for(int i=1;i<=wekday;i++){
System.out.print("\t");
}
for(int i=1;i<=30;i++){//小缺陷,都为30天了
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
}
~~~
![](https://box.kancloud.cn/027c1390c6bcce98626058614d9642e5_649x181.png)
阶段6:日历完成
~~~
import java.util.*;
public class Year6 {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
System.out.println("请输入年份:");
int year=in.nextInt();
System.out.println("请输入月份:");
int month=in.nextInt();
int sum=0;
for(int y=1900;y<year;y++){
if(y%4==0&&y%100!=0||y%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<month;m++){
if(m==2){
if(year%4==0&&year%100!=0||year%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=1;
int wekday=sum%7;//星期几
System.out.println("日\t一\t二\t三\t四\t五\t六");
//确定每月第一天前面的空格
for(int i=1;i<=wekday;i++){
System.out.print("\t");
}
for(int i=1;i<=30;i++){//小缺陷,都为30天了
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
}
~~~
![](https://box.kancloud.cn/ce346820880df1e75390b57cfc22001a_713x264.png)
- 书写心得
- 1.初识Java
- 2.变量、数据类型和运算符
- 实例:数据的输入
- 实例:变量互换
- 3.条件选择结构
- 案例:判断年份是否为闰年
- 案例:生成随机数
- 实例:剪刀石头布
- 4.循环结构
- 实例:猜数字游戏
- Myeclipse
- 实例:九九乘法表
- 实例:日历
- 5.数组
- JVM内存分析
- 键盘录入赋值数组
- 数组的length属性
- 数组的最大值(打擂台)
- 数组的排序
- 数组复制算法
- 数组的查找算法(搜索)
- 数组的插入算法
- 数组的冒泡算法
- 数组的选择排序
- 多维数组
- 实例:学生成绩管理系统
- 类和对象
- 概念
- 内存分析
- 创建类和对象
- 面向对象与内存分析
- 有参数无(有)返回值的调用
- 成员变量
- return和多参方法
- toString方法
- this关键字
- 封装
- 方法的重载
- 构造方法
- 阶段性总结
- 实例:学生管理系统
- Test.java
- Student.java
- Admin.java
- 构造代码块及构造函数之间的调用
- main方法和静态应用工具类及classpath
- static关键字
- 文档注释和静态代码块及单例模式
- 继承
- 多态
- 匿名对象和toString()和equals及final
- 抽象类和模板方法设计模式
- 接口
- 包机制和包与包之间的访问权限和jar包