⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agendamanager.java

📁 用java语言开发的基于命令行的议程管理系统
💻 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 + -