java不能排除小于当前日期的日期
我无法根据每月条款生成每周和每月日期计划
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月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
# 1 楼答案
你已经从第一天开始循环
从当前日期开始