Bash is the wrong tool for the job. This is a bit beyond the type of coding most people would attempt with a shell. Perl would be a better tool for this.
If you absolutely won't use anything else but bash, at least loosen the shackles you've put on yourself and opt for a different date format. I assume you came up with your date format something like this:
Try this instead
This will give you date/time represented as "number of seconds since Jan-1-1970". You can take two dates in this representation, subtract one from the other, divide by 60, and there's your time difference expressed in minutes. This calculation can be done in bash much easier than a calculation using your current date format. Although I still think a perl program would be better...