java简单的万年历代码 java一个简单的万年历

用JAVA编写一个万年历importjava.io.*;
classputout{
publicvoidputout(intf,intx,inty){
inti;
inta[]=newint[40];
System.out.println("日一二三四五六" "" f "月");
for(i=0;ix;i)
{System.out.print("");}
for(i=x;ix y;i)
a[i]=i-x 1;
for(i=x;ix y;i)
{
if((i%7==0)(i0))
System.out.print("\n");
if(a[i]10)
System.out.print("" a[i]);
elseSystem.out.print("" a[i]);
}
System.out.println("\n");
}
}
classst{
publicstaticvoidmain(Stringargs[])throwsIOException{
putoutp=newputout();
intyear,mouth,y=1,t,i;
InputStreamReaderir;
BufferedReaderin;
ir=newInputStreamReader(System.in);
in=newBufferedReader(ir);
System.out.print("请输入一个年份:");
Strings=in.readLine();
year=Integer.parseInt(s);
if((year%4==0year0!=0)||(year@0==0))
mouth=1;
else
mouth=0;
y=year;
for(i=1;iyear;i)
{if((i%4==0i0!=0)||(i@0==0))
y;}
y=y%7;
for(i=1;i13;i){
switch(i){
case1:{p.putout(1,y,31);y=(y 31)%7;break;}
case2:{p.putout(2,y,28 mouth);y=(y 28 mouth)%7;break;}
case3:{p.putout(3,y,31);y=(y 31)%7;break;}
case4:{p.putout(4,y,30);y=(y 30)%7;break;}
case5:{p.putout(5,y,31);y=(y 31)%7;break;}
case6:{p.putout(6,y,30);y=(y 30)%7;break;}
case7:{p.putout(7,y,31);y=(y 31)%7;break;}
case8:{p.putout(8,y,31);y=(y 31)%7;break;}
case9:{p.putout(9,y,30);y=(y 30)%7;break;}
case10:{p.putout(10,y,31);y=(y 31)%7;break;}
case11:{p.putout(11,y,30);y=(y 30)%7;break;}
case12:{p.putout(12,y,31);y=(y 31)%7;break;}
}
}
}
}
求一个java swing带界面的万年历代码按照你的要求编写的Java swing 带界面的万年历代码如下
//日历
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class CCI extends JFrame implements ActionListener{
JButton jb1=new JButton("");
JButton jb2=new JButton("");
【java简单的万年历代码 java一个简单的万年历】 JButton jb3=new JButton("");
JButton jb4=new JButton("");
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
JPanel jp4=new JPanel();
JLabel jl1=new JLabel();
JLabel jl2=new JLabel();
JLabel[]jl=new JLabel[49];
String []week={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
Calendar c=Calendar.getInstance();
int year,month,day;
int nowyear,nowmonth,nowday;
CCI(){
super("简单日历");
nowyear=c.get(Calendar.YEAR);
nowmonth=c.get(Calendar.MONTH) 1;
nowday=c.get(Calendar.DAY_OF_MONTH);
year=nowyear;
month=nowmonth;
day=nowday;
String s=year "年" month "月";
jl1.setForeground(Color.RED);
jl1.setFont(new Font(null,Font.BOLD,20));
jl1.setText(s);
jb1.addActionListener(this);
jb2.addActionListener(this);
jb3.addActionListener(this);
jb4.addActionListener(this);
jp1.add(jb1);jp1.add(jb2);jp1.add(jl1);jp1.add(jb3);jp1.add(jb4);
jp2.setLayout(null);
createMonthPanel();
jp2.add(jp3);
jl2.setFont(new Font(null,Font.BOLD,20));
jl2.setText("今天是" nowyear "年" nowmonth "月" nowday "日");
jp4.add(jl2);
add(jp1,BorderLayout.NORTH);
add(jp2,BorderLayout.CENTER);
add(jp4,BorderLayout.SOUTH);
setSize(500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==jb1){
year=year-1;
String s=year "年" month "月";
jl1.setText(s);
jp3.removeAll();
createMonthPanel();
jp3.validate();
}
if(ae.getSource()==jb2){
if(month==1){
year=year-1;
month=12;
}else{
month=month-1;
}
String s=year "年" month "月";
jl1.setText(s);
jp3.removeAll();
createMonthPanel();
jp3.validate();
}
if(ae.getSource()==jb3){
if(month==12){
year=year 1;
month=1;
}else{
month=month 1;
}
String s=year "年" month "月";
jl1.setText(s);
jp3.removeAll();
createMonthPanel();
jp3.validate();
}
if(ae.getSource()==jb4){
year=year 1;
String s=year "年" month "月";
jl1.setText(s);
jp3.removeAll();
createMonthPanel();
jp3.validate();
}
}
public static void main(String[] args) {
new CCI();
}
public int getMonthDays(int year, int month) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
if ((year%4==0year0!=0)||year@0==0) {
return 29;
} else {
return 28;
}
default:
return 30;
}
}
public void createMonthPanel(){
c.set(year, month-1, getMonthDays(year,month));
int weekOfMonth=c.get(Calendar.WEEK_OF_MONTH);
if(weekOfMonth==6){
jp3.setLayout(new GridLayout(7,7));
jp3.setBounds(50, 20, 420, 350);
}else{
jp3.setLayout(new GridLayout(6,7));
jp3.setBounds(50, 20, 420, 300);
}
jp3.setBorder(BorderFactory.createEtchedBorder());
for(int i=0;i7;i){
jl[i]=new JLabel(week[i],JLabel.CENTER);
jl[i].setFont(new Font(null,Font.BOLD,20));
jl[i].setBorder(BorderFactory.createEtchedBorder());
jp3.add(jl[i]);
}
c.set(year, month-1, 1);
int emptyFirst=c.get(Calendar.DAY_OF_WEEK)-1;
int daysOfMonth=getMonthDays(year,month);
for(int i=6 emptyFirst;i=7;i--){
int intyear=year;
int intmonth=month;
if(intmonth==1){
intyear=intyear-1;
intmonth=12;
}else{
intmonth=intmonth-1;
}
int intdays=getMonthDays(intyear,intmonth);
jl[i]=new JLabel((intdays 7-i) "",JLabel.CENTER);
jl[i].setFont(new Font(null,Font.BOLD,20));
jl[i].setForeground(Color.GRAY);
jl[i].setBorder(BorderFactory.createEtchedBorder());
jp3.add(jl[i]);
}
for(int i=7 emptyFirst;idaysOfMonth 7 emptyFirst;i){
jl[i]=new JLabel((i-7-emptyFirst 1) "",JLabel.CENTER);
jl[i].setFont(new Font(null,Font.BOLD,20));
if((i 1)%7==0 || (i 1)%7==1){
jl[i].setForeground(Color.RED);
}else if((i-7-emptyFirst 1)==nowdaymonth==nowmonthyear==nowyear)
jl[i].setForeground(Color.BLUE);
else
jl[i].setForeground(Color.BLACK);
jl[i].setBorder(BorderFactory.createEtchedBorder());
jp3.add(jl[i]);
}
if(weekOfMonth==6)
for(int i=48;i=daysOfMonth emptyFirst 7;i--){
jl[i]=new JLabel((49-i) "",JLabel.CENTER);
jl[i].setFont(new Font(null,Font.BOLD,20));
jl[i].setForeground(Color.GRAY);
jl[i].setBorder(BorderFactory.createEtchedBorder());
jp3.add(jl[i]);
}
else
for(int i=41;i=daysOfMonth emptyFirst 7;i--){
jl[i]=new JLabel((42-i) "",JLabel.CENTER);
jl[i].setFont(new Font(null,Font.BOLD,20));
jl[i].setForeground(Color.GRAY);
jl[i].setBorder(BorderFactory.createEtchedBorder());
jp3.add(jl[i]);
}
}
}
编写 万年历java代码例如1900年一月一日是星期一 。import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class MyCalendar
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
String reg = "^(\\d )[^\\d] ((0?[1-9])|(1[012]))$";
while(true)
{
System.out.println("输入年月(年和月用非数字隔开:如2015.1)(什么都不输入直接退出)");
String line = scanner.nextLine().trim();
if("".equals(line))
{
scanner.close();
break;
}
if(!line.matches(reg))
{
continue;
}
int year = Integer.parseInt(line.replaceAll(reg, "$1"));
int month = Integer.parseInt(line.replaceAll(reg, "$2"));
System.out.println("日\t一\t二\t三\t四\t五\t六");
Calendar calendar = Calendar.getInstance();
// 这个月的1号是星期几
calendar.set(year, month - 1, 1);
int day = calendar.get(Calendar.DAY_OF_WEEK);
int start = Calendar.SUNDAY;
calendar.add(Calendar.DATE, -daystart);
while(startday)
{
System.out.print(calendar.get(Calendar.DATE)"\t");
calendar.add(Calendar.DATE, 1);
start;
}
calendar.set(year, month - 1, 1);
Date now = calendar.getTime();
calendar.set(year, month, 1);
Date next = calendar.getTime();
for(Date cur = now; cur.before(next);)
{
calendar.setTime(cur);
int x = calendar.get(Calendar.DATE);
String tmp = x10 ? "0"x : x"";
System.out.print(tmp"\t");
if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY)
{
System.out.println();
}
calendar.add(Calendar.DATE, 1);
cur = calendar.getTime();
}
calendar.add(Calendar.DATE, -1);
int to = calendar.get(Calendar.DAY_OF_WEEK);
int end = Calendar.SATURDAY;
while(toend)
{
calendar.add(Calendar.DATE, 1);
int x = calendar.get(Calendar.DATE);
String tmp = x10 ? "0"x : x"";
System.out.print(tmp"\t");
to;
}
System.out.println();
}
}
}
JAVA万年历代码/*
题目:输出任意年份任意月份的日历表(公元后)
思路:
1.已知1年1月1日是星期日,1 % 7 = 1 对应的是星期日,2 % 7 = 2 对应的是星期一,以此类推;
2.计算当年以前所有天数 当年当月1号之前所有天数;
a.年份分平年闰年,平年365天,闰年366天;
b.闰年的判断方法year % 400 == 0 || (year % 100 != 0year % 4 == 0)若为真,则为闰年否则为平年;
c.定义平年/闰年数组,包含各月天数;
d.遍历数组求和,计算当年当月前总天数;
e.当年以前所有天数 当年当月前总天数 1即为1年1月1日到当年当月1日的总天数;
3.总天数对7取模,根据结果判断当月1号是星期几,输出空白区域;
4.输出当月日历表,逢星期六换行
*/
import java.util.Scanner;
class FindMonthList {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();//年份
if (year1) {//判断非法输入年份
System.out.println("输入错误!");
return;
}
System.out.println("请输入月份:");
int month = sc.nextInt();//月份
if (month1 || month12) {//判断非法输入月份
System.out.println("输入错误!");
return;
}
//输出表头
System.out.println("-------"year" 年 "month" 月 ""-------");
System.out.println();
System.out.println("日一二三四五六");
//计算当前年份以前所有天数beforeYearTotalDay;每4年一个闰年,闰年366天,平年365天
int beforeYearTotalDay = ((year - 1) / 4 * 366)(year-1 - ((year - 1) / 4)) * 365;
int[] arrLeapYear = {0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年各月天数int数组
int[] arrNormalYear = {0,31,28,31,30,31,30,31,31,30,31,30,31};//平年各月天数int数组
int beforeMonthTotalDay = 0;//定义本年当月之前月份的总天数
if (year % 400 == 0 || (year % 100 != 0year % 4 == 0)) {//判断当前年份是否是闰年
for (int i = 0 ; imonth ; i) {//for循环计算当月之前总天数
//计算当前月份之前的所有天数
beforeMonthTotalDay = beforeMonthTotalDayarrLeapYear[i];
}
//判断当月1日是星期几
int totalDay = beforeYearTotalDaybeforeMonthTotalDay1;
int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日
for (int i = 0 ; i(week - 17) % 7 ; i) {//如果写成i(week-1)会出现i-1的情况
System.out.print("");//输出开头空白
}
for (int i = 1 ;i = arrLeapYear[month] ;i) {//for循环输出各月天数
System.out.print(i"");
if (i10 ) {//小于10的数补一个空格,以便打印整齐
System.out.print(" ");
}
if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrLeapYear[month]) {//每逢星期六/尾数换行
System.out.println();
}
}
} else {//不是闰年就是平年
for (int i = 0 ; imonth ; i) {//for循环计算出当月之前月份总天数
beforeMonthTotalDay = beforeMonthTotalDayarrNormalYear[i];
}
//判断当月1日是星期几
int totalDay = beforeYearTotalDaybeforeMonthTotalDay1;
int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日
for (int i = 0 ; i(week - 17) % 7 ; i) {//如果写成i(week-1)会出现i-1的情况
System.out.print("");//输出开头空白
}
for (int i = 1 ;i = arrNormalYear[month] ;i) {//for循环输出各月天数
System.out.print(i"");
if (i10 ) {//小于10的数补一个空格,以便打印整齐
System.out.print(" ");
}
if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrNormalYear[month]) {//每逢星期六/尾数换行
System.out.println();
}
}
}
}
}
显示效果:
关于java简单的万年历代码和java一个简单的万年历的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读