本文主要详细介绍用Java实现的简单万年历。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
本文分享Java实现简单万年历的具体代码,供大家参考。具体内容如下。
1 要求
1.输入年份;
2.输入月份;
3.输出某年某月的日历。
2 思路
1.实现从控制台接收年月,判断是否是闰年(判断是否是闰年:能被4整除但不能被100整除;或者能被400整除);
2.计算输入月份的天数;
3.在每月的第一天计算星期几;
3.1计算输入年份与1900年1月1日之间的天数;
3.2计算输入月份前的天数(从当年年初算起);
3.3将上述两组数据相加;
3.4给定月份前的天数,计算输入月份的第一天是星期几(从1900年1月1日(星期一)开始计算):星期几=1天差% 7)。
4.根据格式输出该月的日历。
3 源代码
导入Java . util . scanner;
公共类别索引{
//每个月的天数
公共静态int monthday(int month,int year) {
if ((year % 4==0 year % 100!=0) ||年% 400==0) {
int[] day={0,31,29,31,30,31,30,31,31,30,31,30,31,30,31 };
返回日[月];
}否则{
int[] day={0,31,28,31,30,31,30,31,31,30,31,30,31,30,31 };
返回日[月];
}
}
//一个月的总天数
公共静态int monthdays(int month,int year) {
int total days=0;
for(int I=1;I月;i ) {
totaldays=totaldays monthday(i,year);
}
返回总天数;
}
//从1900年开始一年中的总天数
公共静态int yeardays(int year){
int year days=0;
for(int I=1900;iyeari ){
if ((i % 4==0 i % 100!=0) || i % 400==0) {
yeardays=yeardays 366
}否则{
yeardays=yeardays 365
}
}
System.out.println(从1900年开始的总天数' year days ');
返回年天数;
}
//输出日历
public static void print calendar(int month,int year){
int total days=0;
如果(第0年){
if(第0个月第13个月){
//从1900年1月1日开始的总天数
totaldays=monthdays(月,年)yeardays(年);
System.out.println(从1900年开始的总天数:' totaldays '在一年' month '的第一天);
system . out . println(' \ n * * * * * * * * * '年'月'历为* * * * * * *);
system . out . println(' one \ t two \ t three \ t four \ t five \ t six \ t day \ t ');
int week=1 total days % 7;
//根据1号是星期几输出一个空格。
for(int I=1;iweeki ){
system . out . print(' \ t ');
}
//输入特定的日期
for(int I=1;i=monthday(月,年);i ){
system . out . print(I ' \ t ');
if(week==7){
周=1;//重置为星期一
system . out . println();
}否则{
周;
}
}
}否则{
System.out.println('输入的月份非法!');
}
}否则{
System.out.println('输入的年份非法!');
}
}
//主函数
公共静态void main(String[] args) {
Scanner scanner=新扫描仪(system . in);
system . out . println(' * * * * * * * * * * * * * * * * * * * * * * * * * * *,欢迎来到万年历* * * * * * * * * * * * * * * * * * * * * *);
system . out . println(' * * * * * * * * * * * * * * * *请选择需要执行的操作(输入操作前的数字)* * * * * * * * *);
system . out . println(' * * * * * * * * * * * * * * * * * * 1。查询某年某月的日历* * * * * * * * * * * * * * * * * * * * *);
system . out . println(' * * * * * * * * * * * * * * * * 2。结束操作* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
system . out . print(' \ n请选择您需要的操作:');
int a=scanner . nextint();
for(int I=0;I=0;i ) {
开关(a) {
案例1:
System.out.print('请选择年份:');
int year=scanner . nextint();
System.out.print('请选择月份:');
int month=scanner . nextint();
printCalendar(月、年);
system . out . print(' \ n请选择您需要的操作:');
a=scanner . nextint();
打破;
案例二:
System.out.println('成功退出程序!');
返回;
}
}
}
}
4 结果截图
注意:我的星期天在最后一栏。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。