📄 add.java
字号:
package agenda.Function;
import java.util.ArrayList;
import java.util.List;
import agenda.ReworkTime.*;
import agenda.User.*;
import agenda.addandmanage.*;
/**
* Add 类用于执行添加议程功能。成功添加的议程使用议程数据管理类ManageAgenda来保存的。
*/
public class Add {
public static void doAddAgenda(List list) {
int launcherIsbespeakerLag = 1;
if(((String)(list.get(0)) != null)&&((String)(list.get(2))) != null){
if(!(((String)(list.get(0))).equalsIgnoreCase((String)(list.get(2))))){
launcherIsbespeakerLag = 0;
}else{
launcherIsbespeakerLag = 1;
}
}
// 创建注册用户管理实例,用于查找添加议程语句中的用户
ManageUser manageUser = new ManageUser();
// 标记议程发起者是否为注册用户
int launcherexistlag = 0;
//查找、判断议程的发起用户是否已注册
for(int index = 0;index<ManageUser.RegisteredUserList.size();index++){
if(((String)list.get(0)).equals(((User)ManageUser.RegisteredUserList.get(index)).userName)){
launcherexistlag = 1;
break;
}
}
// 标记议程预约者是否为注册用户
int bespeakerexistlag = 0;
//查找、判断被预约用户是否已注册
for(int index = 0;index<ManageUser.RegisteredUserList.size();index++){
if(((String)list.get(2)).equals(((User)ManageUser.RegisteredUserList.get(index)).userName)){
bespeakerexistlag = 1;
break;
}
}
// 创建议程管理实例
ManageAgenda manageAgenda = new ManageAgenda();
// user
List userInAgendaList = new ArrayList();
for(int index = 0;index<ManageAgenda.AgendaList.size();index++){
if(((String)list.get(0)).equals(((Agenda)ManageAgenda.AgendaList.get(index)).userName)
||((String)list.get(0)).equals(((Agenda)ManageAgenda.AgendaList.get(index)).otheruserName)){
userInAgendaList.add(index); // 保存user所在的议程号
}
}
// other
List otherInAgendaList = new ArrayList();
for(int index = 0;index<ManageAgenda.AgendaList.size();index++){
if(((String)list.get(0)).equals(((Agenda)ManageAgenda.AgendaList.get(index)).userName)
||((String)list.get(0)).equals(((Agenda)ManageAgenda.AgendaList.get(index)).otheruserName)){
otherInAgendaList.add(index);
}
}
int userInAgendaListLag;
if(userInAgendaList.size() > 0){
userInAgendaListLag = 1;
}else{
userInAgendaListLag = 0;
}
int otherInAgendaListLag;
if(userInAgendaList.size() > 0){
otherInAgendaListLag = 1;
}else{
otherInAgendaListLag = 0;
}
//
StringToTime time = new StringToTime();
// user、other已在其他议程中,但没有时间冲突,议程可以添加;1表示可以用
int usercanuse = 0;
int othercanuse = 0;
// user、other不在议程中,准备直接ADD;1表示可以用。
int userNotInAgenda = 0;
int otherNotInAgenda = 0;
//
if(launcherIsbespeakerLag == 1){
System.out.println(" 议程发起者与预约者是同一个人,不能添加议程!");
}else{
if((launcherexistlag == 1)&&(bespeakerexistlag == 1)){ //两人都是注册用户
//--------------------------------------------------------------
if(userInAgendaListLag == 1){ // user
// 标记待添加议程时间与用户所在议程的时间冲突的议程个数,只要此标记有值则调试冲突
int numberlag= 0;
int userInAgendaListSize = userInAgendaList.size();
for(int i = 0;i<userInAgendaList.size();i++){
//得到用户所在的议程列表中的议程编号
int userinagendaindex = (Integer)userInAgendaList.get(i);
if(!((time.Conserse((String)list.get(3))).after(time.Conserse(((Agenda)ManageAgenda.AgendaList.get(userinagendaindex)).endTime))
||(time.Conserse((String)list.get(4))).before(time.Conserse(((Agenda)ManageAgenda.AgendaList.get(userinagendaindex)).startTime)))){
numberlag++;
}else{
;
}
}
if(numberlag > 0){ //时间有冲突
System.out.println(" 待添加议程中的发起者在同时间内已经有议程安排,添加不成功!");
}
if(numberlag == 0){ //没有时间冲突
usercanuse = 1; //标记User可以用
}
}else{ // user无任何议程
userNotInAgenda = 1;
}
//--------------------------------------------------------------
if(otherInAgendaListLag == 1){ // other
// 标记待添加议程时间与用户所在议程的时间冲突的议程个数
int numberlag2= 0;
int otherInAgendaListSize = otherInAgendaList.size();
for(int i = 0;i<otherInAgendaList.size();i++){
//得到用户所在的议程列表中的议程编号
int otherinagendaindex = (Integer)otherInAgendaList.get(i);
if(!((time.Conserse((String)list.get(3))).before(time.Conserse(((Agenda)ManageAgenda.AgendaList.get(otherinagendaindex)).endTime))
||(time.Conserse((String)list.get(4))).after(time.Conserse(((Agenda)ManageAgenda.AgendaList.get(otherinagendaindex)).startTime)))){
numberlag2++;
}else{
;
}
}
if(numberlag2 > 0){ //时间有冲突
System.out.println(" 待添加议程中的预约者在同时间内已经有会议安排,添加不成功!");
}
if(numberlag2 == 0){ //没有时间冲突
othercanuse = 1;
}
}else{//other无任何议程
otherNotInAgenda = 1;
}
//--------------------------------------------------------------
if((usercanuse == 1)&&(othercanuse == 1)){
// 根据Add命令参数创建议程对象
Agenda agenda = new Agenda();
agenda.SetUsername((String)list.get(0));
agenda.Setpassword((String)list.get(1));
agenda.SetOtheruserName((String)list.get(2));
agenda.SetstartTime((String)list.get(3));
agenda.SetendTime((String)list.get(4));
agenda.Settitle((String)list.get(5));
// 添加议程
ManageAgenda.AgendaList.add(agenda);
System.out.println(" 新添加议程成功!");
// 添加成功后,随即报告显示所添加的议程
ManageAgenda.PrintAgenda(ManageAgenda.AgendaList.size()-1);
System.out.println("\n");
ManageAgenda.PrintAgenda();
}
if((userNotInAgenda == 1)&&(otherNotInAgenda == 1)){
// 根据Add命令参数创建议程对象
Agenda agenda = new Agenda();
agenda.SetUsername((String)list.get(0));
agenda.Setpassword((String)list.get(1));
agenda.SetOtheruserName((String)list.get(2));
agenda.SetstartTime((String)list.get(3));
agenda.SetendTime((String)list.get(4));
agenda.Settitle((String)list.get(5));
// 添加议程
ManageAgenda.AgendaList.add(agenda);
System.out.println(" 新添加议程成功!");
// 添加成功后,随即报告显示所添加的议程
ManageAgenda.PrintAgenda(ManageAgenda.AgendaList.size()-1);
System.out.println("\n");
ManageAgenda.PrintAgenda();
}
}else if(!(launcherexistlag == 1)){ // 有人未注册
System.out.println(" 议程发起者为未注册,无法创建议程!请先注册!");
}else if(!(bespeakerexistlag == 1)){ // 有人未注册
System.out.println(" 议程预约者为未注册,无法创建议程!请先注册!");
}else if((!(launcherexistlag == 1))&&(!(bespeakerexistlag == 1))){
System.out.println(" 议程发起者预约者都为未注册,无法创建议程!请先注册!");
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -