001 /** 002 * Copyright 2012 The Kuali Foundation Licensed under the 003 * Educational Community License, Version 2.0 (the "License"); you may 004 * not use this file except in compliance with the License. You may 005 * obtain a copy of the License at 006 * 007 * http://www.osedu.org/licenses/ECL-2.0 008 * 009 * Unless required by applicable law or agreed to in writing, 010 * software distributed under the License is distributed on an "AS IS" 011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 012 * or implied. See the License for the specific language governing 013 * permissions and limitations under the License. 014 * 015 */ 016 package org.kuali.student.enrollment.class2.acal.util; 017 018 import org.apache.commons.lang.StringUtils; 019 import org.apache.commons.lang.time.DateFormatUtils; 020 import org.joda.time.MutableDateTime; 021 import org.kuali.student.enrollment.class2.acal.dto.TimeSetWrapper; 022 import org.kuali.student.r2.common.dto.RichTextInfo; 023 024 import java.text.SimpleDateFormat; 025 import java.util.Date; 026 027 /** 028 * This class //TODO ... 029 * 030 * @author Kuali Student Team 031 */ 032 public class CommonUtils { 033 public static void assembleTimeSet(TimeSetWrapper timeSetWrapper, Date startDate, Date endDate) throws Exception{ 034 SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm aa"); 035 if (startDate !=null) { 036 String startDateFullString = formatter.format(startDate); 037 String[] timeStr = startDateFullString.split(" "); 038 timeSetWrapper.setStartDate(new SimpleDateFormat("MM/dd/yyyy").parse(timeStr[0])); 039 if (!"12:00".equals(timeStr[1])){ 040 timeSetWrapper.setStartTime(timeStr[1]); 041 } 042 timeSetWrapper.setStartTimeAmPm(timeStr[2].toLowerCase()); 043 } 044 045 if (endDate !=null) { 046 String endDateFullString = formatter.format(endDate); 047 String[] timeStr = endDateFullString.split(" "); 048 timeSetWrapper.setEndDate(new SimpleDateFormat("MM/dd/yyyy").parse(timeStr[0])); 049 if (!"12:00".equals(timeStr[1])){ 050 timeSetWrapper.setEndTime(timeStr[1]); 051 } 052 timeSetWrapper.setEndTimeAmPm(timeStr[2].toLowerCase()); 053 054 } 055 } 056 057 public static boolean isValidDateRange(Date startDate,Date endDate){ 058 if(startDate != null && endDate != null) { 059 if (startDate.after(endDate) || endDate.before(startDate)){ 060 return false; 061 } 062 } 063 return true; 064 } 065 066 public static String formatDate(Date date){ 067 return DateFormatUtils.format(date, CalendarConstants.DEFAULT_DATE_FORMAT); 068 } 069 070 public static boolean isDateWithinRange(Date startDate,Date endDate,Date checkDate){ 071 if(startDate != null && endDate != null && checkDate != null) { 072 if (checkDate.before(startDate) || checkDate.after(endDate)){ 073 return false; 074 } 075 } 076 return true; 077 } 078 079 public static RichTextInfo buildDesc(String descr){ 080 RichTextInfo rti = new RichTextInfo(); 081 rti.setPlain(descr); 082 return rti; 083 } 084 085 /* not currently used 086 public static Date getStartDate(TimeSetWrapper timeSetWrapper) throws Exception { 087 Date startDate = timeSetWrapper.getStartDate(); 088 String startTime = timeSetWrapper.getStartTime(); 089 String amPm = timeSetWrapper.getStartTimeAmPm(); 090 Date fullStartDate = getDateWithTime(startDate, startTime, amPm); 091 092 return fullStartDate; 093 } 094 public static Date getEndDate(TimeSetWrapper timeSetWrapper) throws Exception { 095 Date endate = timeSetWrapper.getEndDate(); 096 String endTime = timeSetWrapper.getEndTime(); 097 String amPm = timeSetWrapper.getEndTimeAmPm(); 098 Date fullEndDate = getDateWithTime(endate, endTime, amPm); 099 100 return fullEndDate; 101 } */ 102 103 /* formatter.parse throws an Exception which forces try/catch on everything - ugh 104 public static Date getDateWithTime(Date adate, String atime, String ampm) throws Exception { 105 Date fullDate = null; 106 if (ampm == null) 107 ampm = "am"; 108 109 if(adate != null){ 110 if(atime != null && !atime.isEmpty()){ 111 String fullDateString = new SimpleDateFormat("MM/dd/yyyy").format(adate); 112 fullDateString = fullDateString.concat(" " + atime + " " + ampm); 113 SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm aa"); 114 fullDate = formatter.parse(fullDateString); 115 } 116 else { 117 fullDate = adate; 118 } 119 } 120 return fullDate; 121 }*/ 122 123 public static Date getDateWithTime(Date date, String hourMinute, String amPm) { 124 if (null == date) { 125 return null; 126 } 127 128 MutableDateTime dateTime = new MutableDateTime(date); 129 130 if (StringUtils.isNotBlank(hourMinute)) { 131 int hour = Integer.parseInt(StringUtils.substringBefore(hourMinute,":")); 132 if (StringUtils.equalsIgnoreCase(amPm,"PM")) { 133 // 24-hour clock; e.g. 12 PM = hour 12; 8 PM = hour 20 134 if (hour < 12) { 135 hour += 12; 136 } 137 } 138 else // if amPm is blank/null, assume AM 139 if (hour == 12) { 140 hour = 0; // 12 AM is stored in Calendar as hour 0 141 } 142 dateTime.setTime(hour, Integer.parseInt(StringUtils.substringAfter(hourMinute,":")), 0, 0); 143 } 144 145 return dateTime.toDate(); 146 } 147 148 }