如何由年份和星期而得到当年所有的日期(月日)在线等,急!!! 请写出实现的方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考:http://community.csdn.net/Expert/TopicView.asp?id=5383638/** * Calendar test 根据年份,打印该年日历 * @author * */import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.TextArea;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.util.Calendar;import java.util.GregorianCalendar;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class LeapYearTest extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; JLabel result; TextArea txa; JTextField t1; JButton btn; int year; boolean leap; int weekDay; public LeapYearTest() { super("Calendar Test"); setSize(280, 700); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); setLocation(dimension.width / 2 - 140, dimension.height / 2 - 350); JPanel panel = new JPanel(); result = new JLabel("year"); t1 = new JTextField(5); t1.setToolTipText("input the year > 0"); btn = new JButton("generate"); t1.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { char input = e.getKeyChar(); if(input == '\n') generate(); else if (!Character.isDigit(input) && input != '\b') { e.consume(); }else{ btn.setEnabled(true); } } public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { } }); btn.setToolTipText("Generate the year " + t1.getText() + " Calendar"); btn.setEnabled(false); panel.add(result); panel.add(t1); panel.add(btn); txa = new TextArea("", 12, 36, TextArea.SCROLLBARS_VERTICAL_ONLY); txa.setEditable(false); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(panel, "North"); this.getContentPane().add(txa, "Center"); btn.addActionListener(this); } public void actionPerformed(ActionEvent e) { generate(); } private void generate() { System.out.println(t1.getText()); if(t1.getText() == null || t1.getText().equals("")){ return; } year = Integer.parseInt(t1.getText()); t1.setText(""); if (year < 1) { txa.setText("year canot be less than 1!"); return; } else txa.setText(" Calendar Year:" + year + "\n"); weekDay = (int) firstDayOfYear(year); for (int i = 1; i <= 12; i++) { printMonth(i);// System.out.println("\n"); txa.append("\n"); } t1.setText(""); btn.setEnabled(false); } private void printMonth(int m) { printHead(m); int days = daysOfMonth(m); Calendar calendar = new GregorianCalendar(); for (int i = 1; i <= days; i++) { if (i < 10) {// System.out.print(" " + i); txa.append(" " + i); } else {// System.out.print(" " + i); txa.append(" " + i); } if(m == calendar.get(Calendar.MONTH)+1 && i == calendar.get(Calendar.DAY_OF_MONTH)) txa.append("*"); weekDay = (weekDay + 1) % 7; if (weekDay == 0) {// System.out.println(); txa.append("\n");// System.out.print("");// 控制2-6行// txa.append(""); } } } private void printHead(int m) {// System.out.println("========================================");// System.out.println(" *日 一 二 三 四 五 六* " + m + "月");// System.out.println("========================================"); txa.append("========================================\n"); txa.append(" 日 一 二 三 四 五 六 " + m + "月\n"); txa.append("========================================\n"); for (int i = 0; i < weekDay; i++) {// System.out.print(" ");// 控制第一行 txa.append(" "); } } private long firstDayOfYear(int y) { long n; n = y * 365; for (int i = 1; i < y; i++) { if (isLeapYear(i)) n += 1; } return n %= 7; } private int daysOfMonth(int m) { switch (m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isLeapYear(year)) return 29; else return 28; } return weekDay; } private boolean isLeapYear(int y) { return ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0); } public static void main(String[] args) { LeapYearTest test = new LeapYearTest(); test.setVisible(true); test.setAlwaysOnTop(true);// test.setExtendedState(JFrame.MAXIMIZED_BOTH); JFrame.setDefaultLookAndFeelDecorated(true); }} 同一楼上,有了年,日期就定了。用Calendar day加1,循环 关于java泛型的问题?? Driver does not support this function 希望大家指点指点,!!!!!! 100分 求输入1个数N 打印前N个素数的代码 java 控制面板里的一个问题,大家帮我看看。 关于高可用性系统的设计与实现 Java8移除了JDBC-ODBC...以后要怎样读mdb文件? invocation在Java中怎么翻译啊? 请教高手们一个问题???????? Cookie,数组遍历相关,请各位帮帮忙! 学习多线程用java好还是C++好? 如果你不会这个!最好别说搞JAVA的
/**
* Calendar test 根据年份,打印该年日历
* @author
*
*/
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.TextArea;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Calendar;
import java.util.GregorianCalendar;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;public class LeapYearTest extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L; JLabel result; TextArea txa; JTextField t1; JButton btn;
int year; boolean leap; int weekDay; public LeapYearTest() {
super("Calendar Test");
setSize(280, 700);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
setLocation(dimension.width / 2 - 140, dimension.height / 2 - 350); JPanel panel = new JPanel();
result = new JLabel("year");
t1 = new JTextField(5);
t1.setToolTipText("input the year > 0");
btn = new JButton("generate");
t1.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char input = e.getKeyChar();
if(input == '\n')
generate();
else if (!Character.isDigit(input) && input != '\b') {
e.consume();
}else{
btn.setEnabled(true);
}
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
});
btn.setToolTipText("Generate the year " + t1.getText() + " Calendar");
btn.setEnabled(false);
panel.add(result);
panel.add(t1);
panel.add(btn); txa = new TextArea("", 12, 36, TextArea.SCROLLBARS_VERTICAL_ONLY);
txa.setEditable(false);
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(panel, "North");
this.getContentPane().add(txa, "Center");
btn.addActionListener(this);
} public void actionPerformed(ActionEvent e) {
generate();
} private void generate()
{
System.out.println(t1.getText());
if(t1.getText() == null || t1.getText().equals("")){
return;
}
year = Integer.parseInt(t1.getText());
t1.setText("");
if (year < 1) {
txa.setText("year canot be less than 1!");
return;
}
else
txa.setText(" Calendar Year:" + year + "\n");
weekDay = (int) firstDayOfYear(year);
for (int i = 1; i <= 12; i++) {
printMonth(i);
// System.out.println("\n");
txa.append("\n");
}
t1.setText("");
btn.setEnabled(false);
}
private void printMonth(int m) {
printHead(m);
int days = daysOfMonth(m);
Calendar calendar = new GregorianCalendar();
for (int i = 1; i <= days; i++) {
if (i < 10) {
// System.out.print(" " + i);
txa.append(" " + i);
} else {
// System.out.print(" " + i);
txa.append(" " + i);
}
if(m == calendar.get(Calendar.MONTH)+1 && i == calendar.get(Calendar.DAY_OF_MONTH))
txa.append("*");
weekDay = (weekDay + 1) % 7;
if (weekDay == 0) {
// System.out.println();
txa.append("\n");
// System.out.print("");// 控制2-6行
// txa.append("");
}
}
} private void printHead(int m) {// System.out.println("========================================");
// System.out.println(" *日 一 二 三 四 五 六* " + m + "月");
// System.out.println("========================================"); txa.append("========================================\n");
txa.append(" 日 一 二 三 四 五 六 " + m + "月\n");
txa.append("========================================\n");
for (int i = 0; i < weekDay; i++) {
// System.out.print(" ");// 控制第一行
txa.append(" ");
}
} private long firstDayOfYear(int y) {
long n;
n = y * 365;
for (int i = 1; i < y; i++) {
if (isLeapYear(i))
n += 1;
}
return n %= 7;
} private int daysOfMonth(int m) {
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if (isLeapYear(year))
return 29;
else
return 28;
}
return weekDay;
} private boolean isLeapYear(int y) {
return ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0);
} public static void main(String[] args) {
LeapYearTest test = new LeapYearTest();
test.setVisible(true);
test.setAlwaysOnTop(true);
// test.setExtendedState(JFrame.MAXIMIZED_BOTH);
JFrame.setDefaultLookAndFeelDecorated(true);
}
}