package com.beiwo.other;
/*
* 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确
* 1.1900年1月1号开始
* 2.星期 : 直接用总天数对7求余数 31 28 59 / 7 = 5
* 3.以\t来个开
*/
public class Demo4 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Demo4 demo = new Demo4();

//输入你要查询的年月

demo.show(1900,3);

}

//定义一个工具方法:判断平年还是闰年
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();
}

}

//效果预览

//

最新文章

  1. 又到周末了,我们一起来研究【浏览器如何检测是否安装app】吧
  2. sublime3添加对react代码检查
  3. java中变量命名和引用变量的一个坑
  4. 北邮oj 题
  5. 快速学习C语言四: 造轮子,ArrayList
  6. IE安全分析
  7. 20145213《Java程序设计》第四周学习总结
  8. codevs 1080 线段树练习
  9. poj 3368 Frequent values(RMQ)
  10. requestDisallowInterceptTouchEvent
  11. Can&#39;t obtain the input stream from /docProps/app.xml
  12. java_model_dao_自动生成_generator-mybatis-generator-1.3.2 基于maven插件
  13. PyCharm 2017 免费 破解 注册 激活 教程(附 License Server 地址)(Python 编辑器 IDE 推荐)
  14. C语言--第四次作业--数组
  15. SpringCloud学习笔记:负载均衡Ribbon(3)
  16. 语音识别ASR - HTK(HResults)计算字错率WER、句错率SER
  17. Selenium Web 自动化
  18. JEECG-Swagger UI的使用说明
  19. 【sping揭秘】22、事务管理
  20. iOS中的MVC

热门文章

  1. (。・・)ノ~个人java学习随笔记录
  2. Ext.js添加子组件
  3. 如何给main传参数
  4. ajax跨域通过 Cors跨域资源共享 进行GetPost请求
  5. val()失效
  6. Charles常用的十大功能
  7. Android 基于Android的手机邮件收发(JavaMail)之二( Welcome.java 和 ReceiveAndSend.java )
  8. node的错误处理
  9. Apkplug 开发常见问题解答
  10. Ubuntu Dev Box Setup