本文实例讲述了JAVA实现的简单万年历。分享给大家供大家参考,具体如下:

import java.util.Scanner;

public class PrintCalendar {

public static void main(String[] args) {

int years = 0;

int month = 0;

int days = 0;

boolean isRun = false;

//從控制台輸入年,月

Scanner input = new Scanner(System.in);

System.out.print("請輸入年份:");

years = input.nextInt();

System.out.print("請輸入月份:");

month = input.nextInt();

System.out.println("\n*********"+years+"年"+month+"月 日曆表************");

//判断是否是闰年

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

isRun = true;

}

int totalDays = 0; //累計天數

//計算距離1900年1月1日的天數

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

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

totalDays = totalDays + 366;

}else{

totalDays = totalDays + 365;

}

}

int beforeDays = 0;

//根據月份判斷天數

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

switch(j){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

days = 31;

break;

case 4:

case 6:

case 9:

case 11:

days = 30;

break;

case 2:

if(isRun){

days = 29;

}else{

days = 28;

}

default:

System.out.println("输入月份不正确!!");

}

if(j < month){

beforeDays = beforeDays + days;

}

}

totalDays = totalDays + beforeDays; //統計到目前總天數

int firstDayOfMonth = 0;

int temp = 1 + totalDays % 7 ;

if(temp == 7){

firstDayOfMonth = 0; //週日

}else{

firstDayOfMonth = temp;

}

/* 输出日历 */

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

for(int k = 0; k < firstDayOfMonth; k++){

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

}

for(int m = 1; m <= days; m++){

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

if((totalDays + m) % 7 == 6){

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

}

}

}

}

关于万年历的制作感兴趣的朋友还可参考本站在线工具:

在线万年历日历

网页万年历日历

希望本文所述对大家Java程序设计有所帮助。

java 简单万年历_JAVA实现的简单万年历代码相关推荐

  1. java签到程序设计_java redis 实现简单的用户签到功能

    业务需求是用户每天只能签到一次,而且签到后用户增加积分,所以把用户每次签到时放到redis 缓存里面,然后每天凌晨时再清除缓存,大概简单思想是这样的 直接看代码吧如下 @Transactional @ ...

  2. java电脑日历_Java中calendar对万年历的制作(同步电脑上的万年历日期格式)

    Java编程中calendar对万年历的制作教程 使用到的方法: 1.日期类型的转换: String----->Date String str = "2020年05月27日 20:28 ...

  3. java打印输出万年历_Java基础之打印万年历的简单实现(案例)

    Java基础之打印万年历的简单实现(案例) 问题:输入年,月,打印对应年月的日历. 示例: 问题分析: 1,首先1970年是Unix系统诞生的时间,1970年成为Unix的元年,1970年1月1号是星 ...

  4. java小知识_java小知识点简单回顾

    1.java的数据类型分为两种:简单类型和引用类型(数组.类以及接口).注意,java没有指针的说法,只有引用.简单类型的变量被声明时,存储空间也同时被分配:而引用类型声明变量(对象)时,仅仅为其分配 ...

  5. java foreach用法_Java十大简单性能优化

    以下是Java中最容易进行的10个性能优化: 1.使用StringBuilder 这几乎是所有Java代码中的默认设置.尽量避免+操作员.当然,您可能会争辩说它StringBuilder无论如何都是语 ...

  6. java 继承 冒号_java继承(extends)简单介绍

    继承相信很多人都有听说过,继承是面向对象的三个基本特征之一,下面的话就一起通过简单的文章来对java继承进行一下了解吧. 继承和现实生活中的"继承"的相似之处是保留一些父辈的特性, ...

  7. java 性能 优化_Java十大简单性能优化

    java 性能 优化 关于" web scale "这个流行词有很多炒作,人们花了很多时间来重新组织他们的应用程序体系结构,以使其系统"规模化". 但是什么是扩 ...

  8. java rest客户端_Java中的简单REST客户端

    java rest客户端 如今,大多数用于与某些服务器通信的移动应用程序都使用REST服务. 这些服务也是JavaScript或jQuery的常用惯例. 现在,我知道在Java中为REST服务创建客户 ...

  9. java简单题目_Java考点知识简单练习题

    Java考点知识简单练习题 Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网,同时拥有全球最大的开发者专业社群.下面是 ...

最新文章

  1. BitPay商家现在可以通过比特币现金(BCH)获得结算
  2. 《HiBlogs》重写笔记[1]--从DbContext到依赖注入再到自动注入
  3. 程序员的选房神技,GitHub上的房源爬虫
  4. Delphi开发的服务在Windows2003 64位注册方式。
  5. 这些贷款冷知识你知道多少?
  6. 学计算机的误解,让人误解的六大专业
  7. 超硬核!躺进BAT以后我总结了出现最多的15道数组题
  8. 计算机科学导论_[计算机科学导论]第一章:计算机学什么
  9. word文档生成目录
  10. 数据结构算法之关键路径
  11. 电脑版微信不显示头像
  12. 浪潮华为,高端存储市场的双头之争
  13. python注释快捷_python注释快捷键
  14. C# SqlSugar ORM管理数据
  15. 关于苹果MFI认证那些事
  16. 【c#】DGV中复制粘贴数据最详细代码
  17. 联想笔记本windows10设备管理器找不到蓝牙
  18. 2018王者服务器维护,王者荣耀:2018年最后一次更新,大量装备改动,玩法全部迭代!...
  19. HTB-baby BoneChewerCon
  20. 微信小程序自带地图_微信小程序获取当前位置并调用微信内置地图打开

热门文章

  1. 【React Native】react-navigation导航使用方法
  2. NSLog打印自定义对象
  3. PrestaShop 网站漏洞修复如何修复
  4. 程序员也想改 Lottie 动画?是的!
  5. PHP如何更好的利用PHPstorm的自动提示
  6. JMeter打开脚本报错处理方法
  7. Nagios监控笔记上
  8. Exchange Server2013 系列十:证书的配置
  9. Lucene:基于Java的全文检索引擎简介(转载)
  10. Fiddler抓包工具总结(转)