001 /** 002 * The contents of this file are subject to the Mozilla Public License Version 1.1 003 * (the "License"); you may not use this file except in compliance with the License. 004 * You may obtain a copy of the License at http://www.mozilla.org/MPL/ 005 * Software distributed under the License is distributed on an "AS IS" basis, 006 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 007 * specific language governing rights and limitations under the License. 008 * 009 * The Original Code is "DataTypeUtil.java". Description: 010 * "This class is used to provide utility functions for other datatype classes and methods." 011 * 012 * The Initial Developer of the Original Code is University Health Network. Copyright (C) 013 * 2001. All Rights Reserved. 014 * 015 * Contributor(s): ______________________________________. 016 * 017 * Alternatively, the contents of this file may be used under the terms of the 018 * GNU General Public License (the ?GPL?), in which case the provisions of the GPL are 019 * applicable instead of those above. If you wish to allow use of your version of this 020 * file only under the terms of the GPL and not to allow others to use your version 021 * of this file under the MPL, indicate your decision by deleting the provisions above 022 * and replace them with the notice and other provisions required by the GPL License. 023 * If you do not delete the provisions above, a recipient may use your version of 024 * this file under either the MPL or the GPL. 025 * 026 */ 027 028 package ca.uhn.hl7v2.model; 029 030 import java.util.*; 031 032 /** 033 * This class is used to provide utility functions for other datatype classes and methods. 034 */ 035 036 public class DataTypeUtil { 037 038 public DataTypeUtil() { 039 }//end zero arg constructor 040 041 042 /** 043 * This method will preappend the zeros to the beginning of num such that the total length 044 * equals totalDigitLength. It will also return the string representation of the new number. 045 */ 046 public static String preAppendZeroes(int num, int totalDigitLength){ 047 /* preappend the zeros to the beginning of num such that the total length 048 equals totalDigitLength. Return the string representation of the new number*/ 049 String a = String.valueOf(num); 050 if (a.length() >= totalDigitLength) 051 return a; 052 else { 053 int preAppendAmnt = totalDigitLength - a.length(); 054 for (int j=0; j < preAppendAmnt; j++){ 055 a = "0"+a; 056 }//end for 057 return a; 058 }//end else 059 }//end method 060 061 062 /** 063 * This method will return a signed four digit integer indicating the local 064 * GMT offset. This is the HL7 Offset format in integer representation. 065 */ 066 public static int getLocalGMTOffset(){ 067 int offSet; 068 GregorianCalendar currentTime = new GregorianCalendar(); 069 int gmtOffSet = currentTime.get(GregorianCalendar.ZONE_OFFSET); 070 String offSetSign; 071 int offSetSignInt; 072 if (gmtOffSet < 0 ){ 073 offSetSignInt = -1; 074 } 075 else{ 076 offSetSignInt = 1; 077 } 078 //get the absolute value of the gmtOffSet 079 int absGmtOffSet = Math.abs(gmtOffSet); 080 int gmtOffSetHours = absGmtOffSet/(3600*1000); 081 int gmtOffSetMin = (absGmtOffSet / 60000) % (60); 082 //return the offset value HL7 format 083 offSet = ((gmtOffSetHours*100)+gmtOffSetMin) * offSetSignInt; 084 return offSet; 085 }//end method 086 087 088 }//end class 089