1
我在根據每月條款生成每週和每月日期排定時遇到問題。無法排除小於當前日期的日期
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import com.toedter.calendar.JDateChooser;
import com.toedter.calendar.JMonthChooser;
public class test extends JFrame {
/**
*
*/
private static final long serialVersionUID = 2513170924764415427 L;
private JPanel contentPane;
private JDateChooser dateChooser;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
test frame = new test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JMonthChooser monthChooser = new JMonthChooser();
monthChooser.setBounds(41, 45, 94, 20);
contentPane.add(monthChooser);
dateChooser = new JDateChooser();
dateChooser.setDateFormatString("yyyy-MM-dd");
dateChooser.setBounds(41, 108, 242, 30);
contentPane.add(dateChooser);
JButton btnClick = new JButton("CLICK");
btnClick.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
/*Date nextMonth = addDays(dateChooser.getDate(),7);
JOptionPane.showMessageDialog(null,df.format(nextMonth),null, getDefaultCloseOperation());*/
/*JOptionPane.showMessageDialog(null,df.format(setDateofMonth(6)),null, getDefaultCloseOperation());*/
Calendar cal = Calendar.getInstance();
int monthnow = cal.get(Calendar.MONTH);
int yearnow = cal.get(Calendar.YEAR);
int daynow = cal.get(Calendar.DAY_OF_MONTH);
int termspermonth = 4;
int monthlyschedule = 4;
int day1 = 1;
int day2 = 8;
int day3 = 15;
int day4 = 22;
for (int x = 0; x < 4; x++) {
for (int i = 0; i < 31; i++) {
if (i == day1) {
System.out.println(df.format(setDateofMonth(yearnow, monthnow + x + 1, day1)));
}
if (i == day2) {
System.out.println(df.format(setDateofMonth(yearnow, monthnow + x + 1, day2)));
}
if (i == day3) {
System.out.println(df.format(setDateofMonth(yearnow, monthnow + x + 1, day3)));
}
if (i == day4) {
System.out.println(df.format(setDateofMonth(yearnow, monthnow + x + 1, day4)));
}
}
}
}
});
btnClick.setBounds(110, 194, 91, 23);
contentPane.add(btnClick);
}
public static Date setDateofMonth(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(year, month - 1, day);
System.out.println(new SimpleDateFormat("MMMM").format(cal.getTime()));
Date date = cal.getTime();
return date;
}
我的問題是我不能排除小於當前日期的日期。
當前日期是2015年11月17日。
這裏是輸出:
November 2015-11-01
November 2015-11-08
November 2015-11-15
November 2015-11-22
December 2015-12-01
December 2015-12-08
December 2015-12-15
December 2015-12-22
January 2016-01-01
January 2016-01-08
January 2016-01-15
January 2016-01-22
February 2016-02-01
February 2016-02-08
February 2016-02-15
February 2016-02-22
從哪個日期開始你想要嗎? – Satya
它應該是這樣的 月2015年11月22日 月2015年12月1日 月2015年12月8日 月2015年12月15日 月2015年12月22日 月2016年1月1日 月2016年1月8日 一月2016年1月15日 一月2016年1月22日 二月2016年2月1日 二月2016年2月8日 二月2016年2月15日 二月2016年2月22日 – agentOrange02
它應該將於2015年11月22日開始 – agentOrange02