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(); } } } } }

RackNerd 黑色星期五5款年付套餐

RackNerd 商家从2019年上线以来争议也是比较大的,一直低价促销很多网友都认为坚持时间不长可能会跑路。不过,目前看到RackNerd还是在坚持且这次黑五活动也有发布,且活动促销也是比较多的,不过对于我们用户来说选择这些低价服务商尽量的不要将长远项目放在上面,低价年付套餐服务商一般都是用来临时业务的。RackNerd商家这次发布黑五促销活动,一共有五款年付套餐,涉及到多个机房。最低年付的套餐...

VPSMS:53元/月KVM-512MB/15G SSD/1TB/洛杉矶CN2 GIA

VPSMS最近在做两周年活动,加上双十一也不久了,商家针对美国洛杉矶CN2 GIA线路VPS主机提供月付6.8折,季付6.2折优惠码,同时活动期间充值800元送150元。这是一家由港人和国人合资开办的VPS主机商,提供基于KVM架构的VPS主机,美国洛杉矶安畅的机器,线路方面电信联通CN2 GIA,移动直连,国内访问速度不错。下面分享几款VPS主机配置信息。CPU:1core内存:512MB硬盘:...

wordpress专业外贸建站主题 WordPress专业外贸企业网站搭建模版

WordPress专业外贸企业网站搭建模版,特色专业外贸企业风格 + 自适应网站开发设计 通用流行的外贸企业网站模块 + 更好的SEO搜索优化和收录 自定义多模块的产品展示功能 + 高效实用的后台自定义模块设置!采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera...

java万年历为你推荐
于抄抄杨幂和唐人xiechengwang携程网电话是什么ds仙剑3电视剧结局电视剧仙剑三最终的结局是什么啊!?仙剑3电视剧结局仙剑三电视剧结局sj综艺节目sj在中国的所有综艺节目融图教程我想用美图秀秀或者画图将四张图片合成一张图,怎么做?空气有毒吸入过多有毒气体怎么办碗豆荚最新版下载豌豆荚手机哪个软件可以下载浙大网新培训浙江浙大网新图灵信息科技有限公司怎么样?qq群排名五河QQ群排名怎么靠前啊
国外域名注册 网站域名备案查询 美国主机排名 cybermonday 樊云 谷歌香港 天猫双十一抢红包 java空间 河南移动网 河南移动m值兑换 台湾谷歌 drupal安装 512mb 电信网络测速器 广州服务器托管 asp空间 美国vpn代理 web是什么意思 reboot 中国域名根服务器 更多