📄 agendamanager.java
字号:
/**
*
*/
package agenda.service;
import java.text.DateFormat;
import java.util.*;
import agenda.entity.AgendaInfo;
/**
* 议程管理
*
* @author zhangxn
*/
public class AgendaManager {
private List<AgendaInfo> agendaList = new ArrayList<AgendaInfo>();
/**
* 构造函数
*/
public AgendaManager() {
}
/**
* 添加会议
*
* @param agendaInfo
* 所要添加会议的信息
* @return flase 会议信息不规范 / true 会议信息规范
*/
public boolean addAgenda(AgendaInfo agendaInfo) {
String userName = agendaInfo.getUserName();
String otherUser = agendaInfo.getOtherUser();
Date beginTime = agendaInfo.getBeginTime();
Date endTime = agendaInfo.getEndTime();
if (beginTime.compareTo(new Date()) < 0) {
System.out.println("会议开始时间不能早于比当前时间。");
return false;
}
if (beginTime.compareTo(endTime) >= 0) {
System.out.println("会议开始时间不能早于或等于结束时间。");
return false;
}
int flag = 1;
for (int i = 0; i < agendaList.size(); i++) {
AgendaInfo agenda = (AgendaInfo) agendaList.get(i);
if (userName.equals(agenda.getUserName())
|| userName.equals(agenda.getOtherUser())
|| otherUser.equals(agenda.getUserName())
|| otherUser.equals(agenda.getOtherUser())) {
Date bTimeTmp = agenda.getBeginTime();
Date eTimeTmp = agenda.getEndTime();
if ((beginTime.compareTo(bTimeTmp) <= 0 && endTime
.compareTo(eTimeTmp) >= 0)
|| (beginTime.compareTo(bTimeTmp) >= 0 && beginTime
.compareTo(eTimeTmp) <= 0)
|| (endTime.compareTo(bTimeTmp) >= 0 && endTime
.compareTo(eTimeTmp) <= 0)) {
if (flag == 1) {// 第一次时输出下面文字,以后再发现冲突就直接输出
System.out.println("与下面的会议时间发生冲突:");
System.out.println("ID\t标签\t\t发起人\t\t被预约人\t\t开始时间\t\t\t\t结束时间");
}
String conflitMeet = agenda.getMeetingId();
conflitMeet += "\t" + agenda.getMeetingTitle();
conflitMeet += "\t" + agenda.getUserName();
conflitMeet += "\t\t" + agenda.getOtherUser();
conflitMeet += "\t\t"
+ DateFormat.getDateTimeInstance().format(
agenda.getBeginTime());
conflitMeet += "\t\t"
+ DateFormat.getDateTimeInstance().format(
agenda.getEndTime());
System.out
.println(conflitMeet
+ "\n-----------------------------------------------------");
flag = 0;// 如果会议时间发生冲突,则将flag置为0
// return false;不在此处return,这样将输出所有冲突时间
}
}
}
if (flag == 0)
return false;
agendaInfo.setMeetingId(String.valueOf(agendaList.size() + 1));
agendaList.add(agendaInfo);
System.out.println("添加议程成功。");
return true;
}
/**
* 查询某个用户在某段时间的所有议程安排
*
* @param userName
* 要查询的用户名
* @param beginTime
* 所查时间段的开始时间
* @param endTime
* 所查时间段的结束时间
*/
public void queryAgenda(String userName, Date beginTime, Date endTime) {
System.out.println("" + userName + " 在 "
+ DateFormat.getDateTimeInstance().format(beginTime) + " 和 "
+ DateFormat.getDateTimeInstance().format(endTime)
+ " 之间有下面的会议:");
System.out.println("ID\t标签\t\t发起人\t\t被预约人\t\t开始时间\t\t\t\t结束时间");
for (int i = 0; i < agendaList.size(); i++) {// 先输出自己发起的会议
AgendaInfo agenda = (AgendaInfo) agendaList.get(i);
if (userName.equals(agenda.getUserName())) {
Date bTimeTmp = agenda.getBeginTime();
Date eTimeTmp = agenda.getEndTime();
if ((beginTime.compareTo(bTimeTmp) <= 0 && endTime
.compareTo(eTimeTmp) >= 0)) {
String meetStr = agenda.getMeetingId();
meetStr += "\t" + agenda.getMeetingTitle();
meetStr += "\t" + agenda.getUserName();
meetStr += "\t\t" + agenda.getOtherUser();
meetStr += "\t\t"
+ DateFormat.getDateTimeInstance().format(
agenda.getBeginTime());
meetStr += "\t\t"
+ DateFormat.getDateTimeInstance().format(
agenda.getEndTime());
System.out.println(meetStr);
}
}
}
for (int i = 0; i < agendaList.size(); i++) {// 再输出自己是被预约人的会议
AgendaInfo agenda = (AgendaInfo) agendaList.get(i);
if (userName.equals(agenda.getOtherUser())) {
Date bTimeTmp = agenda.getBeginTime();
Date eTimeTmp = agenda.getEndTime();
if ((beginTime.compareTo(bTimeTmp) <= 0 && endTime
.compareTo(eTimeTmp) >= 0)) {
String meetStr = agenda.getMeetingId();
meetStr += "\t" + agenda.getMeetingTitle();
meetStr += "\t" + agenda.getUserName();
meetStr += "\t\t" + agenda.getOtherUser();
meetStr += "\t\t"
+ DateFormat.getDateTimeInstance().format(
agenda.getBeginTime());
meetStr += "\t\t"
+ DateFormat.getDateTimeInstance().format(
agenda.getEndTime());
System.out.println(meetStr);
}
}
}
System.out
.println("-----------------------------------------------------");
}
/**
* 删除某个会议
*
* @param userName
* 要删除此会议的用户名
* @param meetingId
*/
public void delAgenda(String userName, String meetingId) {
int id = Integer.parseInt(meetingId) - 1;
AgendaInfo agenda = (AgendaInfo) agendaList.get(id);
if (userName.equals(agenda.getUserName())) {
agendaList.remove(id);
}
}
/**
* 清空某人的所有议程安排
*
* @param userName
* 要删除议程的用户名称
*/
public void clearAgenda(String userName) {
for (int i = 0; i < agendaList.size(); i++) {
AgendaInfo agenda = (AgendaInfo) agendaList.get(i);
if (userName.equals(agenda.getUserName())) {
agendaList.remove(i);
i--;
}
}
}
/*
* public void print() {
* System.out.println("Id\tTitle\tUserName\tOtherUser\tStartTime\t\t\tEndTime");
* for(int i=0; i<agendaList.size(); i++) { AgendaInfo agenda =
* (AgendaInfo)agendaList.get(i); String eetingStr = agenda.getMeetingId();
* eetingStr += "\t" + agenda.getMeetingTitle(); eetingStr += "\t" +
* agenda.getUserName(); eetingStr += "\t\t" + agenda.getOtherUser();
* eetingStr += "\t\t" +
* DateFormat.getDateTimeInstance().format(agenda.getBeginTime()); eetingStr +=
* "\t\t" + DateFormat.getDateTimeInstance().format(agenda.getEndTime());
* System.out.println(eetingStr); } }
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -