java万年历在java里怎么做万年历,一年的啊

java万年历  时间:2021-10-20  阅读:()

JAVA万年历怎样制作??

我给出主要代码吧 String Buffer buffer=new StringBuffer(); Calendar rili=Calender.getInstance(); tili.set(year,month-1,1);//将日历翻到year年month月1日(0代表一月) int 星期=rili.get(Calender.DAY_OF_WEEK)-1);//周日是0 int 日=0; if(month==1||month==3||month==5||month==7||month==8||month==10||month==10||month==12) { 日=31 } if(month==4||month==6||month==9||month==11) { 日=30; } if(month==2) { if(((year%4==0)&&(year%100!=0))||(year%400==0)) { 日=29; } else { 日=28; } } String[] a=new String[42];//日历表格是6*7的 for(int i=0;i<星期;i++) { a[i]="**"; } for(int i=星期,n=1;i<星期+日;i++) { a[i]=String.valueOf(n); n++; } for(int i=星期+日,n=1;i<42;i++) { a[i]="**"; }//三个for得出日历表格 String[] weekday={"星期日","星期一"......."星期六"}; 之后就是画出表格(6*7) 在之后添加进表格中,代码为: for(int k=0;k<42;k=k+7) { for(int j=k;j<Math.min(7+k,42);j++) { 添加a[j]; } }

谁知道怎么用JAVA做万年历

import java.util.Scanner; public class Kalendar { public static void main(String[] args){ int year = 0; // 输入年份 int month = 0; // 输入月份 int day =0; // 输入月份的天数 int date = 0; // 星期几 int sub = 0; // 输入日期距离1900年1月1日的天数差 boolean flag = false; // 标识是平年或闰年(false为平年) System.out.println("* * * * * * * * * * * * * * * 万 年 历 * * * * * * * * * * * * * * * "); Scanner input = new Scanner(System.in); System.out.print("请选择年份:"); year = input.nextInt(); /*判断输入的年份是平年或闰年*/ if(year%4 == 0 && year%100 != 0 || year%400 == 0){ flag = true; System.out.println(year + " 闰年"); }else{ System.out.println(year + " 平年"); } System.out.print(" 请输入月份:"); month = input.nextInt(); /*判断输入的年份是平年或闰年,并计算出月份天数*/ if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 ){ day = 31; }else if(month == 4 || month == 6 || month == 9 || month == 11 ){ day = 30; }else if(month == 2){ if(flag){ day = 29; }else{ day = 28; } }else{ System.out.println("您输入的月份错误!"); System.exit(0); // 输入月份错误则提示错误并程序结束 } System.out.print(month + " " + day + "天 "); /*计算输入年份距离日期1900年1月1日的天数差*/ for(int i = 1900; i < year; i ++){ if(i%4 == 0 && i%100 != 0 || i%400 == 0){ // 注意这里是“i”,不是“year” sub = sub + 366; }else{ sub = sub + 365; } } /*计算输入月份距离当前年份1月1日的天数差*/ for(int i = 1; i < month; i ++){ if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 ){ sub = sub + 31; }else if(i == 4 || i == 6 || i == 9 || i == 11 ){ // 注意这里是“i”,不是“month” sub = sub + 30; }else if(i == 2){ if(flag){ // 闰年标识 sub = sub + 29; }else{ sub = sub + 28; } } } sub = sub + 1; // 计算输入当前月的1号距离1900年1月1日的天数差 date = sub%7; // 计算输入当前月的1号是星期几 System.out.print(" 星期日 星期一 星期二 星期三 星期四 星期五 星期六 "); /*根据当前月份1号是星期几则输出相应的空格(星期日输出0个,星期一输出1个,以此类推)*/ for(int i =0; i < date; i ++){ System.out.print(" "); } /*输入月份的日期表*/ for(int i = 1; i <= day; i ++){ System.out.print(" " + i + " "); /*判断月份中如果当日是星期六则换行*/ if(sub%7 == 6){ System.out.println(" "); } sub++; // 天数累加 } } } 给你参考一个最基本的 来源: /bbs/view22-11532-1.htm 看能不能幫你....

用java怎么写一个万年历

import java.applet.applet; import java.awt.*; import java.util.*;

public class calendarapplet extends applet{

static final = 70; //顶端距离 static final int cellwidth=50,cellheight = 30; //单元格尺寸 static final int margin = 3; //边界距离 static final int february = 1; textfield tfyear = new textfield("2004", 5); //显示年份的文本域 choice monthchoice = new choice(); //月份选择下拉框 button btupdate = new button("更新"); //更新按钮 gregoriancalendar calendar=new gregoriancalendar(); //日历对象 font smallfont = new font("timesroman", font.plain, 15); //显示小字体 font bigfont = new font("timesroman", font.bold, 50); //显示大字体 string days[] = {"星期日", "星期一", "星期二", "星期三","星期四", "星期五", "星期六"}; string months[] = {"一月", "二月", "三月", "四月","五月", "六月", "七月", "八月", "九月","十月", "十一月", "十二月"}; int daysinmonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //每个月的天数 int searchmonth,searchyear; //查询的年份及月份

public void init(){ setbackground(color.white); //设置背景颜色 searchmonth = calendar.get(calendar.month); //得到系统年份 searchyear = calendar.get(calendar.year);//得到系统月份 add(new label(" 年:")); //增加组件到applet tfyear.settext(string.valueof(searchyear)); //设置文本域文字 add(tfyear); add(new label(" 月:")); monthchoice.setfont(smallfont); //设置月份选择下拉框的显示字体 for (int i = 0; i < 12; i++) { monthchoice.additem(months[i]); //增加下拉框选项 } monthchoice.select(searchmonth); //设置下拉框当前选择项 add(monthchoice); add(btupdate); ponentcount=ponentcount(); //得到applet中的组件数量 for (int i=0;i&ponentcount;i++){ ponent(i).setfont(smallfont); //设置所有组件的显示字体 } } public void paint(graphics g){ fontmetrics fontmetric; //显示字体的fontmetrics对象 int fontascent; int daypos; int totalwidth, totalheight; //总的宽度,高度 int numrows; //行数 int xnum, ynum; //水平和垂直方向单元格数量 int numdays; string daystr; //显示天数字符串 int margin; g.setcolor(color.lightgray); //设置当前颜色 g.setfont(bigfont); //设置当前使用字体 g.drawstring(searchyear+"年",+70); //绘制字符串 g.drawstring((searchmonth+1)+"月",+130); g.setcolor(color.black); g.setfont(smallfont); fontmetric = g.getfontmetrics(); //获取变量初值 fontascent = fontmetric.getascent(); daypos = + fontascent / 2; totalwidth = 7 * cellwidth; //得到总的表格宽度 for (int i = 0; i < 7; i++) { g.drawstring(days[i], (cellwidth-fontmetric.stringwidth(days[i]))/2 + i*cellwidth,daypos-20); //绘制表格标题栏 } numrows = getnumberrows(searchyear, searchmonth); //计算需要的行的数量 totalheight = numrows * cellheight; //得到总的表格高度 for (int i = 0; i <= totalwidth; i += cellwidth) { g.drawline(i, , i,+ totalheight); //绘制表格线 } for (int i = 0, j = ; i <= numrows; i++, j += cellheight) { g.drawline(0, j, totalwidth, j); //绘制表格线 } xnum = (getfirstdayofmonth(searchyear, searchmonth) + 1) * cellwidth - margin; ynum = + margin + fontascent; numdays = daysinmonth[searchmonth] + ((calendar.isleapyear(searchyear) && (searchmonth == february)) ? 1 : 0); for (int day = 1; day <= numdays; day++) { daystr = integer.tostring(day); g.drawstring(daystr, xnum - fontmetric.stringwidth(daystr), ynum); //绘制字符串 xnum += cellwidth; if (xnum > totalwidth) { xnum = cellwidth - margin; ynum += cellheight; } } } public boolean action(event e, object o){ int searchyearint; if (e.target==btupdate){ searchmonth = monthchoice.getselectedindex(); //得到查询月份 searchyearint = integer.parseint(tfyear.gettext(), 10); //得到查询年份 if (searchyearint > 1581) { searchyear = searchyearint; } repaint(); //重绘屏幕 return true; } return false; } private int getnumberrows(int year, int month) { //得到行数量 int firstday; int numcells; if (year < 1582) { //年份小于1582年,则返回-1 return (-1); } if ((month < 0) || (month > 11)) { return (-1); } firstday = getfirstdayofmonth(year, month); //计算月份的第一天 if ((month == february) && (firstday == 0) && !calendar.isleapyear(year)) { return 4; } numcells = firstday + daysinmonth[month]; if ((month == february) && (calendar.isleapyear(year))) { numcells++; } return ((numcells <= 35) ? 5 : 6); //返回行数 } private int getfirstdayofmonth(int year, int month) { //得到每月的第一天 int firstday; int i; if (year < 1582) { //年份小于1582年,返回-1 return (-1); } if ((month < 0) || (month > 11)) { //月份数错误,返回-1 return (-1); } firstday = getfirstdayofyear(year);//得到每年的第一天 for (i = 0; i < month; i++) { firstday += daysinmonth[i]; //计算每月的第一天 } if ((month > february) && calendar.isleapyear(year)) { firstday++; } return (firstday % 7); }

private int getfirstdayofyear(int year){ //计算每年的第一天 int leapyears; int hundreds; int fourhundreds; int first; if (year < 1582) { //如果年份小于1582年 return (-1); //返回-1 } leapyears = (year - 1581) / 4; hundreds = (year - 1501) / 100; leapyears -= hundreds; fourhundreds = (year - 1201) / 400; leapyears += fourhundreds; first=5 + (year - 1582) + leapyears % 7; //得到每年第一天 return first; } }

运行结果忍受:

求高人提供用java制作万年历的代码。鄙人感激不尽!

//Printcalendar.java:print a calender for a given month in a year import javax.swing.JOptionPane; public class rili{ public static void main(String[]args){ String yearstring=JOptionPane.showInputDialog(null, "请输入年份","日历",JOptionPane.QUESTION_MESSAGE); int year=Integer.parseInt(yearstring); String monthstring=JOptionPane.showInputDialog(null, "请输入月份","日历",JOptionPane.QUESTION_MESSAGE); int month=Integer.parseInt(monthstring); printMonth(year,month); System.exit(0); } static void printMonth(int year,int month){ int startDay=getStartDay(year,month); int numofDaysInmonth=getNumofDaysInMonth(year,month); printMonthTitle(year,month); printMonthBody(startDay,numofDaysInmonth); } //得到这个月的第一天 static int getStartDay(int year,int month){ int startDay1800=3; long totalNumofDays=getTotalNumofDays(year,month); return (int)((totalNumofDays+startDay1800)%7); } //得到自1800年1月1日到这一天的天数 static long getTotalNumofDays(int year,int month){ long total=0; for(int i=1800;i<year;i++) if(isleapyear(i)) total=total+366; else total=total+365; for(int i=1;i<month;i++) total=total + getNumofDaysInMonth(year,i); return total; } static int getNumofDaysInMonth(int year,int month){ if(month==1||month==3||month==5||month==7||month==8|| month==10||month==12) return 31; if(month==4||month==6||month==9||month==11) return 30; if(month==2) if(isleapyear(year)) return 29; else return 28; return 0; } static boolean isleapyear(int year){ if((year%400==0)||((year%4==0)&&(year%100!=0))) return true; return false; } static void printMonthBody(int startDay,int numofDaysInMonth){ int i=0; for(i=0;i<startDay;i++) System.out.print(" "); for(i=1;i<=numofDaysInMonth;i++){ if(i<10) System.out.print(" "+i); else System.out.print(" "+i); if((i+startDay)%7==0) System.out.println(); } System.out.println(); } static void printMonthTitle(int year,int month){ System.out.println(" "+getMonthName(month) +", "+year); System.out.println(" -- -- -- -- -- -- -- -"); System.out.println(" Sun Mon Tue Wed Thu Fri Sat"); } static String getMonthName(int month){ String monthName=null; switch (month){ case 1:monthName="January";break; case 2:monthName="February";break; case 3:monthName="March";break; case 4:monthName="April";break; case 5:monthName="May";break; case 6:monthName="June";break; case 7:monthName="July";break; case 8:monthName="August";break; case 9:monthName="September";break; case 10:monthName="October";break; case 11:monthName="November";break; case 12:monthName="December"; } return monthName; } }

在java里怎么做万年历,一年的啊

先上张效果图:

以下是实现代码:

/*日历*/ import java.awt.*; import java.awt.event.*; import java.util.*; import java.util.regex.Pattern; import javax.swing.*; public class Demo28 extends JFrame { int m = 1; String[] monthchoose = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" }; // 存放月份的字符数组 String[] columnNames = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; // 存放星期的字符数组 Calendar ca = Calendar.getInstance(); Container contentPane = getContentPane(); Vector<String> vector = new Vector<String>(); String[][] date = new String[6][7]; // 表格的显示数据的格式 TextField tf; // 文本框的值代表的是年份 JComboBox jb; JTable table; // 把日期用table的方式显示出来 public void getDate(String year, String month, String week, int Max_Day) { int n = 0, b = 0; // 动态把传进来月份的天数存放到容器里 for (int j = 1; j <= Max_Day; j++) { vector.add(String.valueOf(j)); } //每次往table里添加数据的时候,都预先把原table里 的 数据清空 for(int x = 0;x<date.length;x++){ for(int y = 0;y<date[x].length;y++){ date[x][y] = null; } } // 根据传进来月份的第一天是星期几,来构建Table for (int a = Integer.parseInt(week) - 1; a < date[0].length; a++) { date[0][a] = new String((String) vector.toArray()[n]); n++; } for (int i = 1; i < date.length; i++) { for (int j = 0; j < date[i].length; j++) { if (n < vector.size()) { date[i][j] = new String((String) vector.toArray()[n]); n++; } else break; } } // 把容器里的数据全部清除,以备下次再存放新的数据 while (b < vector.size()) { vector.remove(b); } } public void chooseDate(String day) { JLabel label = new JLabel(); for (int y = 0; y < date.length; y++) { for (int z = 0; z < date[y].length; z++) { System.out.print(date[y][z] + " "); System.out.println(day); if (date[y][z] != null) { if (date[y][z].equals(day)) { table.setSelectionBackground(Color.yellow); return; } } } } } public void paint() { setTitle("日历"); setBounds(200, 200, 350, 178); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); int m = 0; String year = String.valueOf(ca.get(Calendar.YEAR)); // 得到当前的系统时间的年份,并把这个数值存放到year这个变量里 String month = String.valueOf(ca.get(Calendar.MONTH) + 1); // 得到当前的系统时间的月份,并把这个数值存放到month这个变量里 String day = String.valueOf(ca.get(Calendar.DATE)); // 得到当前的系统时间的日期,并把这个数值存放到day这个变量里 ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1 String week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几 int Max_Day = ca.getActualMaximum(Calendar.DATE); // 得到当前系统时间月份有多少天 getDate(year, month, week, Max_Day); // 从月份数组里取出与当前系统时间一样的月份值 for (int i = 0; i < monthchoose.length; i++) { if (monthchoose[i].equals(month)) { m = i; } } JToolBar toolBar = new JToolBar(); JButton b1 = new JButton("<"); b1.addMouseListener(new myMouseListener1()); JButton b2 = new JButton(">"); b2.addMouseListener(new myMouseListener2()); JLabel j1 = new JLabel("年"); JLabel j2 = new JLabel("月"); tf = new TextField(5); tf.addKeyListener(new myKeyListener()); tf.setText(year); jb = new JComboBox(monthchoose); jb.setSelectedIndex(m); jb.addActionListener(new myActionListener3()); table = new JTable(date, columnNames); //table.addMouseListener(new tableMouseListener()); table.setPreferredScrollableViewportSize(new Dimension(350, 150)); JScrollPane jsp = new JScrollPane(table); contentPane.add(jsp, BorderLayout.CENTER); chooseDate(day); toolBar.add(b1); toolBar.add(tf); toolBar.add(b2); toolBar.add(j1); toolBar.add(jb); toolBar.add(j2); toolBar.setLocation(0, 0); toolBar.setSize(400, 15); contentPane.add(toolBar, BorderLayout.NORTH); setVisible(true); new Thread(new PaintThread()).start(); // 调用内部类PaintThread,根据里面的设置来重画 } public static void main(String[] args) { Demo28 d28 = new Demo28(); d28.paint(); } // 鼠标单击左边按钮触发的事件 class myMouseListener1 extends MouseAdapter { public void mouseClicked(MouseEvent e) { String str = tf.getText().trim(); // 得到文本框的值 int i = Integer.parseInt(str); i = i - 1; tf.setText(String.valueOf(i)); String new_year = String.valueOf(i); // 把表示年份的文本框的值存放到变量new_year里 ca.set(Calendar.YEAR, i); // 把Calendar 对象的YEAR设置为用户设置的年份 String new_month = (String) jb.getSelectedItem(); // 得到月份值 ca.set(Calendar.MONTH, Integer.parseInt(new_month) - 1); // 把Calendar对象的MONTH设置为用户设置的月份 ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1 String new_week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几 int Max_Day = ca.getActualMaximum(Calendar.DATE); // 根据设置后的Calendar对象计算这个月份有多少天 getDate(new_year, new_month, new_week, Max_Day); } } class myKeyListener extends KeyAdapter { public void keyReleased(KeyEvent e) { try { int i = Integer.parseInt(tf.getText().trim()); int key = e.getKeyCode(); if (key == KeyEvent.VK_ENTER) { String new_year = String.valueOf(i); ca.set(Calendar.YEAR, i); // 把Calendar对象的YEAR设置为用户设置的年份 String new_month = (String) jb.getSelectedItem(); // 得到月份值 ca.set(Calendar.MONTH, Integer.parseInt(new_month) - 1); // 把Calendar对象的MONTH设置为用户设置的月份 ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1 String new_week = String.valueOf(ca .get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几 int Max_Day = ca.getActualMaximum(Calendar.DATE); // 根据设置后的Calendar对象计算这个月份有多少天 getDate(new_year, new_month, new_week, Max_Day); } } catch (NumberFormatException excption) { System.out.println("你输入的年份不正确!"); } } } // 鼠标单击右边按钮触发的事件 class myMouseListener2 extends MouseAdapter { public void mouseClicked(MouseEvent e) { String str = tf.getText().trim(); int i = Integer.parseInt(str); i = i + 1; tf.setText(String.valueOf(i)); String new_year = String.valueOf(i); // 把表示年份的文本框的值存放到变量new_year里 ca.set(Calendar.YEAR, i); // 把Calendar 对象的YEAR设置为用户设置的年份 String new_month = (String) jb.getSelectedItem(); // 得到月份值 ca.set(Calendar.MONTH, Integer.parseInt(new_month) - 1); // 把Calendar对象的MONTH设置为用户设置的月份 ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1 String new_week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几 int Max_Day = ca.getActualMaximum(Calendar.DATE); // 根据设置后的Calendar对象计算这个月份有多少天 getDate(new_year, new_month, new_week, Max_Day); } } // 鼠标单击选择框触发的事件 class myActionListener3 implements ActionListener { public void actionPerformed(ActionEvent e) { String new_year = String.valueOf(ca.get(Calendar.YEAR)); // 把表示年份的文本框的值存放到变量new_year里 String new_month = (String) jb.getSelectedItem(); // 得到用户设置的月份 ca.set(Calendar.MONTH, Integer.parseInt(new_month) - 1); // 把Calendar对象的月份值设置为用户定义的月份 ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1 String new_week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几 int Max_Day = ca.getActualMaximum(Calendar.DATE); // 根据设置后的Calendar对象计算这个月份有多少天 getDate(new_year, new_month, new_week, Max_Day); } } // 重画组件 private class PaintThread implements Runnable { public void run() { while (true) { repaint(); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } }

Nocser:马来西亚独立服务器促销$60.00/月

Nocser刚刚在WHT发布了几款促销服务器,Intel Xeon X3430,8GB内存,1TB HDD,30M不限流量,月付$60.00。Nocser是一家注册于马来西亚的主机商,主要经营虚拟主机、VPS和马来西亚独立服务器业务,数据中心位于马来西亚AIMS机房,线路方面,AIMS到国内电信一般,绕日本NTT;联通和移动比较友好,联通走新加坡,移动走香港,延迟都在100左右。促销马来西亚服务器...

特网云,美国独立物理服务器 Atom d525 4G 100M 40G防御 280元/月 香港站群 E3-1200V2 8G 10M 1500元/月

特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。公司名:珠海市特网科技有限公司官方网站:https://www.56dr.com特网云为您提供高速、稳定、安全、弹性的云计算服务 计算、存储、监控、安全,完善...

Webhosting24:€15/年-AMD Ryzen/512MB/10GB/2TB/纽约&日本&新加坡等机房

Webhosting24是一家始于2001年的意大利商家,提供的产品包括虚拟主机、VPS、独立服务器等,可选数机房包括美国洛杉矶、迈阿密、纽约、德国慕尼黑、日本、新加坡、澳大利亚悉尼等。商家VPS主机采用AMD Ryzen 9 5950X CPU,NVMe磁盘,基于KVM架构,德国机房不限制流量,网站采用欧元计费,最低年付15欧元起。这里以美国机房为例,分享几款套餐配置信息。CPU:1core内存...

java万年历为你推荐
这是虚么谁帮我解释一下这是什么意思春山春日长解密20122012全球奇人奇事有哪些?sohou搜狐老总是潘石屺v公司瑞典H&M公司简介吉林省建设厅网站吉林省建设厅的内设机构铁路售票网站在哪个网站买火车票好孟夏在古代时令中是指农历几月孟春正月,孟久是几月?cisp成绩查询浙江CSP成绩怎么查?刘丹怎么死的还珠格格的香妃刘丹那年是怎么去世的?截然“截然不同”是什么意思?如何用“截然不同”造句?
主机优惠码 adman 樊云 softbank官网 免费网站监控 台湾谷歌网址 个人域名 raid10 360云服务 腾讯总部在哪 1元域名 宏讯 百度云空间 photobucket lamp什么意思 免费网络空间 广东主机托管 umax 免备案jsp空间 谷歌搜索打不开 更多