`
wjm901215
  • 浏览: 154292 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

简单万年历

    博客分类:
  • java
 
阅读更多
import java.util.*;

public class PrintCalendar {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("******************欢 迎 使 用 万 年 历******************");
		System.out.println("请输入年份: ");
		int year = input.nextInt();
		System.out.println("请输入月份: ");
		int month = input.nextInt();
		boolean isRn;
		/** 判断是否是闰年 *
		 * 凡是能被4整除但不能被100整除And能被400整除的年份即为闰年
		 * 闰年366天,平年365天
		 * **/
		if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) {
			isRn = true; // 闰年
		} else {
			isRn = false;// 平年
		}

		/* 计算输入的年份之前的天数 */
		int totalDays = 0;/* 输入年距1900年的天数 */
		for (int i = 1900; i < year; i++) {
			if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) {
				totalDays = totalDays + 366; // 闰年366天
			} else {
				totalDays = totalDays + 365;//平年365天
			}
		}

		int beforeDays = 0;	/** 输入月份距1月1日的天数 */
		int days = 0;// 每月的天数
		for (int i = 1; i <= month; i++) {
			switch (i) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				days = 31;
				break;
			case 2:
				if (isRn) {
					days = 29;
				} else {
					days = 28;
				}
				break;
			default:
				days = 30;
				break;
			}
			if (i < month) {
				beforeDays = beforeDays + days;
			}
		}
		totalDays = totalDays + beforeDays;/** 计算输入日期距1900年1月1日的天数* */
		int firstDayOfMonth;/** 存储当月第一天是星期几:星期日为0,星期一~星期六为1~6 */
		int temp = 1 + totalDays % 7;
		if (temp == 7) {
			firstDayOfMonth = 0; // 周日
		} else {
			firstDayOfMonth = temp;
		}
		/** 格式化输出万年历* */
		System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
		/**
		 * 输出每月第一天前的空格数
		 * 空格数=firstDayOfMonth
		 * **/
		for (int space = 0; space < firstDayOfMonth; space++) {
			System.out.print("\t");
		}
		for (int i = 1; i <= days; i++) {
			System.out.print(i + "\t");
			if((firstDayOfMonth+i)%7==0){//每月日期排列规律:(空格数+当时日期)%1==0
				System.out.print("\n");
			}
		}

	}

}

 

分享到:
评论

相关推荐

    简易万年历(java在控制台下)

    【简易万年历(Java在控制台下)】 在计算机编程中,开发一个万年历是一项常见的练习,它可以帮助我们理解和应用日期处理、循环以及条件判断等基础编程概念。在这个项目中,我们将深入探讨如何使用Java语言在控制台...

    wannianli.rar_简易万年历

    标题 "wannianli.rar_简易万年历" 指的是一个基于C语言编写的简单万年历程序。这个程序可能包含基本的日期计算和显示功能,旨在帮助用户查看不同年份的日历,而无需复杂的操作。在编程领域,实现这样的万年历程序是...

    android简易万年历源码

    在Android平台上,开发一款简易万年历应用是一个常见的需求,尤其对于初学者来说,这是一个很好的实践项目。本文将深入解析“android简易万年历源码”所提供的内容,并讲解相关的关键知识点,帮助开发者理解和掌握...

    基于stm32简易万年历设计

    嵌入式课设,包含keil5程序,proteus仿真图以及课设报告,所用芯片stm32f401.功能可以显示日期时间,可以通过串口设置日期时间。显示姓名需要自己取字模

    Simple-calendar-system..rar_万年历系统_简易万年历

    简易万年历系统则是简化版的实现,主要关注基本的日历展示和日期转换功能。下面我们将详细探讨万年历系统的核心技术和简易万年历系统的实现要点。 1. **日期计算算法**:万年历系统的核心是日期计算算法,这涉及到...

    Java简单的万年历

    Java简单的万年历程序是一种基于计算机程序设计的实用工具,主要功能是显示1900年以后的日期信息。在编程领域,实现这样的万年历通常涉及到日期和时间处理、循环逻辑以及用户友好的界面展示。对于初学者来说,这是一...

    java 做的简单万年历

    在Java编程语言中,制作一个简单的万年历涉及到日期处理、循环逻辑以及控制台输出的格式化。下面我们将深入探讨这些知识点。 首先,万年历的核心是日期计算,这需要利用到Java中的`java.time`包。从Java 8开始,`...

    Flex万年历记事本_flex源码

    "Flex万年历记事本"是一个使用Flex技术实现的项目,它结合了日历功能和记事本特性,为用户提供了一种方便的方式来管理和记录日常生活中的事务。 在Flex源码中,我们可以期待看到以下几个关键知识点: 1. **MXML与...

    C++控制台简易万年历

    《C++控制台简易万年历程序详解》 在计算机编程的世界里,C++是一种强大的、面向对象的编程语言,广泛应用于系统软件、应用软件、游戏开发以及高性能计算等领域。本篇文章将深入探讨一个使用C++编写的控制台程序...

    C#简单万年历源码

    【C#简单万年历源码】是一个基于C#编程语言开发的控制台应用程序,用于展示一个功能完备的万年历。此项目是利用Visual Studio 2008(VS2008)进行编写的,它实现了日历的月视图切换,能够展示不同月份的日期,并且...

    C++简单万年历查询系统

    在本项目中,我们讨论的是一个使用C++编程语言实现的简单万年历查询系统。这个系统可能是在编程竞赛或学习实践中设计的,其目的是帮助用户查找任何年份的日期信息。C++是一种通用的、面向对象的编程语言,以其性能...

    简易万年历(C++)

    该代码实现了Win32控制台下的简易万年历功能,输入对应的年份,即可得到该年的日历

    简易万年历_单片机_万年历_

    【简易万年历_单片机_万年历】项目是一个基于51单片机的电子日历设计,它能够实现时间的显示、调整以及复位功能。在电子工程领域,这样的项目对于学习单片机编程和硬件接口设计非常有帮助。下面我们将详细探讨这个...

    运用jsp实现万年历包含简易万年历、带阴历的万年历和带有备忘录的万年历

    简易万年历的实现主要涉及日期和时间处理。在Java中,我们可以使用`java.util.Calendar`类或`java.time`包(Java 8及以上版本)来获取和操作日期。例如,创建一个方法,接收年份作为参数,然后生成该年份的所有月份...

    java版简单万年历

    Java版的简单万年历程序是一个实用的小工具,它能够帮助用户查看任意年份和月份的阳历日期。这个程序完全使用Java编程语言编写,因此具备跨平台的特性,可以在Windows、Linux、Mac等操作系统上运行。下面我们将深入...

    μC/OS下 简单万年历设计

    μC/OS下的简单万年历设计,主程序代码。主要实现功能是1. 正常工作时,显示一秒钟的年月日,显示一秒钟的小时、分钟、秒,二者交替显示。年月日格式: YYMMDD;小时、分钟、秒:HHMMSS。 2. 对于年、月、日、小时、...

Global site tag (gtag.js) - Google Analytics