import java.util.Scanner;

public class Work02 {

public static void main(String[] args) {

/**

* 万年历

* 输入一个年份,再输入一个月份,把那个月的日历打印出来,(1900年1月1日是星期一)。

*

* 1.实现周末作业

* 2.优化周末作业

*/

//1.用户输入一个年、一个月

Scanner scan = new Scanner(System.in);

System.out.println("请输入一个年份...");

int year = scan.nextInt();

System.out.println("请输入一个月份...");

int month = scan.nextInt();

//2.判断当年是不是闰年((被4整除 并且不能被100整除) 或者 能被400整除)

boolean bool = false;//true:闰年 -----false:平年

if(isLeapYear(year)){

bool = true;

}

//3.根据用户输入的月来判断月的天数

int day = getDayNum(month, year);//当月天数

//4.求出1900年--用户输入的年份:年份总天数 1900 - 1902 730

int yearOfDayNum = getDayOfYearNum(year);

//5.求出用户输入的年份的第一天到输入月份的天数

int monthFoDayNum = getDayOfMonthNum(month, year);

System.out.println(monthFoDayNum + "========");

int allDay = yearOfDayNum + monthFoDayNum;//总天数

System.out.println(allDay);

int weekNum = allDay % 7;//得出当月第一天是周几

System.out.println("日\t" + "一\t" + "二\t" + "三\t" + "四\t" + "五\t" + "六\t");

for (int i = 0; i <= weekNum; i++) {//打印空格

if(weekNum == 6){

System.out.println();

}else{

System.out.print("\t");

}

}

for (int i = 1; i <= day; i++) {//输出日期、并且换行

System.out.print(i + "\t");

if(((weekNum + i +1) % 7) == 0){

System.out.println();

}

}

}

//判断闰年还是平年

public static boolean isLeapYear(int year){

if((year%4 == 0 && year%100 != 0) || (year%400 ==0)){

return true;

}

return false;

}

//返回当月天数

public static int getDayNum(int month , int year){

int day = 0;//当月天数

switch (month) {

case 1:case 3:case 5:case 7:case 8:case 10:case 12:

day = 31;

break;

case 4:case 6:case 9:case 11:

day = 30;

break;

case 2:

if(isLeapYear(year)){

day = 29;

}else{

day = 28;

}

break;

}

return day;

}

//返回1900年到输入年的天数

public static int getDayOfYearNum(int year){

int yearOfDayNum = 0;

for (int i = 1900; i < year; i++) {

if(isLeapYear(i)){

yearOfDayNum += 366;

}else{

yearOfDayNum += 365;

}

}

return yearOfDayNum;

}

//返回当年一个月到输入月的天数

public static int getDayOfMonthNum(int month , int year){

int monthFoDayNum = 0;

for (int i = 1; i < month; i++) {

switch (i) {

case 1:case 3:case 5:case 7:case 8:case 10:case 12:

monthFoDayNum += 31;

break;

case 4:case 6:case 9:case 11:

monthFoDayNum += 30;

break;

java循环制作万年历,JAVA-万年历代码--循环语句相关推荐

  1. java画笔能画girl图吗_小巧的国产JAVA特效制作工具?Java Girl

    小巧的国产JAVA特效制作工具?Java Girl 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 在推出gifgirl后不久,任毅的又一免费软件呼吸小秘书之 ...

  2. php中用for循环制作矩形,PHP中for循环语句的几种变型

    PHP中for循环语句的几种变型 2021-01-22 10:21:42406 for语句可以说是PHP(同时也是多种语言)的循环控制部份最基本的一个语句了,for语句的执行规律和基础用法在这里就不多 ...

  3. java循环制作万年历,java使用Calendar制作万年历

    package Date; import java.util.Calendar; import java.util.Scanner; public class MyDate { public stat ...

  4. java万年历课程设计代码,JAVA《万年历系统》课程设计

    JAVA<万年历系统>课程设计 面向对象程序设计面向对象程序设计 课程设计报告课程设计报告 题目题目 万年历系统万年历系统 专业专业 计算机科学与技术计算机科学与技术 班级班级 姓名姓名 ...

  5. java中swing循环_在Java游戏循环中使用“ SwingUtilities.invokeLa...

    因此,我正在用JAVA创建一个等距游戏:简而言之,它有一个由图块组成的地图,当用户在屏幕上拖动鼠标时,地图就会移动.为了给大家一个主意,目前看起来像这样: 在实际的原型版本之前,我构建了一个小的Jav ...

  6. java九九乘法表(java九九乘法表用for循环)

    怎样在JAVA中制作一个九九乘法表 VB的九九乘法表 Private Sub Form_Load() For i = 1 To 9 For j = 1 To i If j <> i The ...

  7. java for循环迭代_JAVA中的for-each循环与迭代

    在学习java中的collection时注意到,collection层次的根接口Collection实现了Iterable接口(位于java.lang包中),实现这个接口允许对象成为 "fo ...

  8. java for 嵌套_Java中的for循环嵌套

    Java嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构.whiledo.while.for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环, ...

  9. 循环节长度 java,第六届蓝桥杯java试题-循环节长度

    两个整数做除法,有时会产生循环小数,其循环部分称为:循环节. 比如,11/13=6=>0.846153846153.....  其循环节为[846153] 共有6位. 代码如下 import j ...

  10. java循环基础知识_Java基础知识·循环语句

    掘友们,大家好呀,我是宸道. 今天要讲解的是Java基础的循环语句,虽然很基础但还是希望大家看完,就当时复习知识了,基础越牢固越好,对我们是有很大帮助的. 相关推荐 循环语句可以在满足循环条件的情况下 ...

最新文章

  1. 在CentOS 6.6 64bit上安装vim智能补全插件YouCompleteMe
  2. 英特尔蚕食AMD和NVIDIA?
  3. windows7 下 安装ipython-5.1.0报错
  4. 项目: 用C语言写一个音乐播放器
  5. 一篇演讲 By 浙江大学数学系主任刘克峰
  6. Android 内容提供器---内容提供器基础(内容的统一资源标识(URIs))
  7. R语言与非参数检验之两独立样本中位数检验
  8. 解决 SQL 注入的另类方法
  9. html5车牌效果,车牌自编效果预览软件【京牌】
  10. 矩阵的几个基本概念(一)
  11. ERP原理:第二节 物料清单(BOM)
  12. Jmeter使用技巧集锦大全
  13. 计算机有关英语单词以及谐音,英语单词中文谐音大全
  14. HDLBits在线练习题之Exams/ece241 2014 q7b
  15. 每日一句api Android,Android 图文数据JSON解析,金山词霸每日一句API的调用
  16. 中餐菜单分类名称创意_餐厅菜单的种类分类
  17. 2020支付行业七大预测:聚合支付牌照有望正式落地
  18. 对不可能之事持一种健康的漠视
  19. API调用,淘宝天猫、1688、京东、拼多多商品详情(接口数据聚全)
  20. ARM | STM32F10xxx课堂学习笔记(时钟 高级控制定时器)

热门文章

  1. Eclipse环境下配置Tomcat
  2. 数论1.0 数论基础
  3. 网易云音乐地址解析含官方接口分享
  4. 2021年全球及中国企业级路由器市场竞争格局分析,呈现出寡头竞争的市场格局「图」
  5. 机器学习之MCMC算法
  6. 平面2R机器人(二连杆)运动学与动力学建模+附仿真模型
  7. 数据库MySQL与可视化界面 SQLYog 安装教程
  8. 如何零基础入门产品经理
  9. java核心技术卷1基础知识整理
  10. nema0183 java解析_java解析nmea0183协议