The problem is that your id card is going invalid within one millisecond. [Wow!] getTime returns the long in milliseconds from 1990. [I think], you should be checking that the end date of the id is greater than the current date.
In psuedo code
void isValid
thetime = current time in milliseconds
if thetime is greater than end time
card is not valid
else
card is valid
Edit: from Calender getTime:
"Returns a Date object representing this Calendar's time value"
You are actually cheking the object that Calendar returns, which is not going to ever return true. You could use any of these methods [Depending on the rest of your program] for getting the time in milliseconds
Calendar.getTimeInMillis()
System.currentTimeMillis()
Calendar.getTime().getTime()
or to get the day that the Calendar 'cal' was created in this month:
cal.get(Calendar.DAY_OF_MONTH)
Year:
cal.get(Calendar.YEAR)
Whatever looks best to you.