import java.util.Scanner;
public class o{
public static boolean runnian( int year){
if(year%4==0&&year%100!=0||year%400==0)
return true;
else
return false;
}
public static int day1(int year,int month){
int a[]={31,28,31,30,31,30,31,31,30,31,30,31};
if(runnian(year))
a[1]=29;
return a[month-1];
}
int day2(int year,int month,int day){
int i,sum=0;
for(i=1;i<month;i++){
sum+=day1(year,i);
}
sum+=day;
return sum;
}
public int week1(int year,int month,int day){
int number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+day2(year,month,day);
number%=7;
return number;
}
public static String Week2 (int number){
switch(number)
{
case 0:
return "星期日";
case 1:
return "星期一";
case 2:
return "星期二";
case 3:
return "星期三";
case 4:
return "星期四";
case 5:
return "星期五";
case 6:
return "星期六"
default:
return "错误!请您重新输入。";/*不符和上面七种情况的报错提示*/
}
}
public static void x1(int year,int month,int day){
int number=week1(year, month, day);
if(runnian(year))
System.out.print("闰年");
else
System.out.print("平年");
System.out.print(year+"年"+month+"月"+day+"日"+Week2(number)+"\n\n");
}
public static void x2(int year,int month){
int max,number,i,j=1;
max=day1(year,month);
number=week1(year,month,1);
System.out.print( " 星期日 "+" 星期一 "+" 星期二"+" 星期三 "+" 星期四 "+" 星期五 "+" 星期六 "+"\n\n");
for(i=0;i<number;i++)
{
System.out.print(" ");
}
while(j<=max)
{
System.out.print(j);
if(i%7==6)
{
System.out.print("\n");
}
i++;
j++;
}
System.out.print("\n\n");
}
public static int x3(int year,int month,int day){
if(year<0||month<1||month>12||day<1||day>day1(year,month))
return 0;
else
return 1;
}
public static void nianli(int year){
int i;
System.out.print("\n");
for(i=1;i<=12;i++)
{
if(runnian(year))
System.out.print("闰年");
else
System.out.print("平年");
System.out.print(year+" 年 "+ i+"月"+"\n\n");
}
}
public static void yueli(int year,int month){
if(runnian(year))
System.out.print("闰年");
else
System.out.print("平年");
System.out.print(year+" 年 "+month" 月"+"\n\n");
x2(year,month);
}
public static void rili(int year,int month,int day){
System.out.println();
x1(year,month,day);
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int year,month,day,a,b;
boolean i=true;
while(i){
System.out.print("\n\n\n\n");
System.out.print(" **********************************************************\n\n");
System.out.print(" * * \n");
System.out.print(" 欢迎进入万年历查询系统 \n");
System.out.print(" * * \n\n");
System.out.print(" **********************************************************\n\n\n");
System.out.print(" 1 年历 2 月历 3 日历 4 退出\n");
System.out.print(" 请输入您的选择<1~4>,按回车键确定: ");
b=sc.nextInt();
switch(b){
case 1:/*选择1时*/
System.out.print("\n请输入您要查的年份: ");/*给出输入提示*/
year=sc.nextInt();/*输入查询的年份*/
a=x3(year,1,1);
if(a==0)
{
System.out.print("错误!请您重新输入。\n");/*输入植异常时报错*/
break;
}
nianli(year);
break;
case 2:/*选择二时*/
System.out.print("\n请输入您要查的年和月,年月之间用空格隔开: ");/*给出输入提示*/
year=sc.nextInt();
month=sc.nextInt();/*输入需要查询的年 月*/
a=x3(year,month,1);
if(a==0)
{
System.out.print("错误!请您重新输入。\n");
break;
}
yueli(year,month);
break;
case 3:/*选择3时*/
System.out.print("\n请输入您要查的年月日,年月日之间用空格隔开: ");/*给出输入提示*/
year=sc.nextInt();
month=sc.nextInt();
day=sc.nextInt();/*输入年 月 日*/
a=x3(year,month,day);
if(a==0)
{
System.out.print("错误!请您重新输入。\n");/*输入植异常时报错*/
break;
}
rili(year,month,day);
break;
case 4:
i=false;
default:
System.out.print("错误!请您重新输入。\n\n");
}
}
}
分享到:
相关推荐
《万年历:桌面日历的功能与应用》 在当今数字化时代,万年历作为一款实用的桌面工具,已经深入到人们的日常生活中。万年历不仅提供了日期查询的基本功能,更融合了多种实用特性,使其成为提升工作效率和生活便利性...
微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小...
微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习...
在电子技术领域,单片机应用广泛,尤其在日常生活中,如万年历的设计就是一个典型例子。本项目是关于一个基于51单片机的万年历系统,它结合了DS1302时钟芯片和LED1602液晶显示器,能够实现精确的时间显示和闹钟设置...
本项目标题"source_万年历verilog_verilog_数字钟+万年历_万年历_"揭示了一个用Verilog实现的数字时钟与万年历功能的综合设计。这个设计不仅能够显示当前时间,还具备整点报时、时间调整以及秒数清零的功能。此外,...
小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+...
万年历制作是一个涵盖多个IT领域知识的综合项目,它涉及到日期计算、用户界面设计、数据库存储、编程语言应用等多个方面。以下是对这些知识点的详细解释: 1. **日期计算**:万年历的核心功能是准确地显示日期,...
VHDL多功能数字万年历 本资源是一个使用VHDL语言设计的多功能数字万年历,具有计时和年份显示功能。下面是对该资源的详细解释和知识点总结: 标题:VHDL多功能数字万年历 描述:用VHDL写的多功能数字万年历,计时...
万年历,作为一种实用工具,通常用于查看公历、农历以及各种节气、节日等信息。在信息技术领域,实现一个高效、易用的万年历系统涉及到多种技术知识,包括编程语言、数据结构、时间计算算法以及用户界面设计。下面...
本项目利用STM32开发一款万年历,结合LCD12864显示器,实现日期、时间显示功能,并能持续更新。 在STM32中,万年历的实现主要依赖于RTC(Real-Time Clock)模块。RTC是一种低功耗时钟,可以独立于主处理器运行,...
《万年历1970-2100:全面解析与应用》 在信息化高度发展的今天,万年历作为一种实用工具,早已超越了传统的纸质形式,被广泛应用于电子设备中。本文将深入探讨万年历的核心内容,以及在Excel和MySQL数据库中的实现...
《万年历数据库.db文件详解》 在信息技术领域,数据库是存储和管理数据的核心工具,而".db"文件则是SQLite数据库的一种常见格式。本文将深入探讨"万年历数据库.db"这一特定文件类型,了解其背后的原理、结构以及在...
STM32万年历设计是嵌入式系统中常见的应用之一,主要目的是在微控制器上实现日期和时间的准确显示。在这个项目中,我们将重点讨论如何使用STM32微控制器来构建一个万年历,同时结合Proteus仿真工具进行验证。STM32是...
《万年历的设计与制作 论文撰写》 在信息技术高速发展的今天,万年历作为一项实用的技术,已经深入到日常生活的方方面面。本篇论文主要探讨了如何设计和制作一个功能完善的万年历系统,包括硬件电路设计、软件编程...
【万年历插件开发详解】 在Web开发中,万年历插件是一种常见的日历显示工具,尤其在处理日期选择、事件安排等场景中,它提供了方便的用户界面。本篇文章将深入探讨一个基于jQuery的万年历插件,该插件具有农历和节...
Java简单的万年历程序是一种基于计算机程序设计的实用工具,主要功能是显示1900年以后的日期信息。在编程领域,实现这样的万年历通常涉及到日期和时间处理、循环逻辑以及用户友好的界面展示。对于初学者来说,这是一...
MySQL万年历数据库是一种用于存储和检索历法信息的数据库,尤其在开发日历应用、农历查询工具或者需要处理日期和时间相关业务的系统中非常有用。本数据库涵盖了1970年至2100年间的详细信息,包括但不限于公历日期、...
"1602万年历可调节" 在这个项目中,我们使用了STC89C52单片机和1602液晶显示器来实现一个万年历的功能。该万年历可以显示年、月、日、星期、时、分、秒,可以通过按键来设置时间和日期。 首先,我们需要了解1602...
在IT领域,尤其是在嵌入式系统设计中,"万年历_单片机_万年历_温湿度_万年历lcd12864_万年历闹钟"这个标题涉及了几个关键的技术点,包括单片机编程、万年历算法、温湿度传感器的应用以及LCD12864液晶显示屏的控制。...