日历编程java代码(Java小项目之日历的制作)
用Java语言仿制作一个简易日历,包括基本的日历感觉,没有使用GUI,所以看起来不是很好看,这里主要演示一下日历的基本原理,就不要好看了,开发工具用eclipse,好了话不多说直接开始了。
java
首先,我们先来解决一个问题就是某年某月某日是星期几?这有好多方法,我就举一个方法吧,就是求某年某月某日到1900年1月1日有多少天,之后在对7取余,余几就表示星期几(余数为0表示星期天),那么下面我们就有这个方法求一下今天是星期几?演示代码如下。
2016年12月6日是星期二
今天是星期二
那么解决好某月某天是星期几之后,就可以了进行下一步了,首先看一下我们电脑上的日历是一个什么样的效果,以便我们来模仿做一个简单的。
电脑日历
根据图分析一下,可以看出最上面的一排为(日一二三四五六),一输出的那天是星期六,下面就换行了输出了,日历且是从1号开始输出的,所以我们要用上面的方法算出1号是星期几,然后逐渐输出,一到当天是星期六就换行输出就可以了。
首先解释一下变量都是什么意思year是年份,month是月份,zongtianshu是某年某月1日到1900年1月1日的总天数,xingqi就是当前星期几,sum是计算总天数的方法,daysum是计算当前月有多少天的方法。下面我们运行一下这个程序,看一下这个月的日历。
演示效果
大家可以看出这个和这个月的日历是一样的,就是做的好难看,但他的原理是都演示出来了。下附全部代码。
import java.util.Scanner;
public class Calendar3 {
public static void main(String args[]){
Scanner s=new Scanner(System.in);
System.out.println("请输入年份");
int year=s.nextInt();
System.out.println("请输入月份");
int month=s.nextInt();
int zongtianshu=sum(year,month);
int xingqi=zongtianshu%7;//计算某年某月某日是星期几的方法
System.out.println("日 一 二 三 四 五 六");
for(int i=0;i<xingqi;i ){
System.out.print(" ");
}
int tianshu=Daysum(year,month);
for(int i=1;i<=tianshu;i ){
if(zongtianshu%7==6){//表示星期六
System.out.println(i);
}else{
System.out.print(i " ");
}
zongtianshu ;//总天数加1,直到加满整个月
}
}
public static int sum(int year,int month){
int sum = 0;//总天数
for(int i=1990;i<year;i ){
if(i%4==0&&i0!=0||i@0==0){
sum=sum 36;
} else{
sum=sum 365;
}
}
for(int i=1;i<month;i ){
/ /判断今年是不是闰年
if(i==2){//2月特殊
if(year%4==0&&year0!=0||year@0==0){
sum =29;
}else{
sum =28;
}
}
else if(i==4||i==6||i==9||i==11){
sum =30;
}
else{
sum =31;
}
}
sum =1;
return sum;//输出0就代表周日
}
public static int Daysum(int year,int month){//哪年哪月共有多少天
if(month==2){
if(year%4==0&&year0!=0||year@0==0){
return 29;
}
else{
//不是闰年2月应该有28天
return 28;
}
}
else if(month==4||month==6||month==9||month==11){
return 30;
}
else{
return 31;
}
}
}
鲜花送给您
本人菜鸟,还在学习编程,如果文章中有错误,希望您能指出,您的指导是我前进的动力,欢迎评论,欢迎收藏吗,欢迎转发,欢迎关注头条号:趣IT科技。
您认为这篇文章咋样? 单选
0人 0%
小编辛苦,还算凑活
0人 0%
写的什么东西,垃圾
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。