void af5z_descriptive_roundtime(struct char_data *ch, struct char_data *vict)
{
	struct affected_type5z *af5z2;


	af5z2 = vict->affected5z;

	if (af5z2->duration > 1)
	{
		if (af5z2->duration >= 86400) // 1 day or more?
		{
			int days;
			days = ((af5z2->duration / 60) / 60) / 24;

			int hours, hours_2;
			hours = ((af5z2->duration / 60) / 60) - (days * 24);
			hours_2 = ((af5z2->duration / 60) / 60);

			int minutes;
			minutes = (af5z2->duration / 60) - (hours_2 * 60);

			int seconds;
			seconds = af5z2->duration - (((hours_2 * 60) * 60) + (minutes * 60));

			if (hours == 0 && minutes == 0 && seconds == 0)
				send_to_char(ch, "%d day%s.", 
				days, days > 1 ? "s":"");
			else if (hours == 0 && minutes == 0 && seconds > 0)
				send_to_char(ch, "%d day%s, %d second%s.", 
				days, days > 1 ? "s":"",
				seconds, seconds > 1 ? "s":"");
			else if (hours == 0 && minutes > 0 && seconds == 0)
				send_to_char(ch, "%d day%s, %d minute%s.", 
				days, days > 1 ? "s":"",
				minutes, minutes > 1 ? "s":"");
			else if (hours == 0 && minutes > 0 && seconds > 0)
				send_to_char(ch, "%d day%s, %d minute%s, %d second%s.", 
				days, days > 1 ? "s":"",
				minutes, minutes > 1 ? "s":"",
				seconds, seconds > 1 ? "s":"");
			else if (hours > 0 && minutes == 0 && seconds == 0)
				send_to_char(ch, "%d day%s, %d hour%s.", 
				days, days > 1 ? "s":"",
				hours, hours > 1 ? "s":"");
			else if (hours > 0 && minutes == 0 && seconds > 0)
				send_to_char(ch, "%d day%s, %d hour%s, %d second%s.", 
				days, days > 1 ? "s":"",
				hours, hours > 1 ? "s":"",
				seconds, seconds > 1 ? "s":"");
			else if (hours > 0 && minutes > 0 && seconds == 0)
				send_to_char(ch, "%d day%s, %d hour%s, %d minute%s.", 
				days, days > 1 ? "s":"",
				hours, hours > 1 ? "s":"",
				minutes, minutes > 1 ? "s":"");
			else
				send_to_char(ch, "%d day%s, %d hour%s, %d minute%s, %d second%s.", 
				days, days > 1 ? "s":"",
				hours, hours > 1 ? "s":"",
				minutes, minutes > 1 ? "s":"",
				seconds, seconds > 1 ? "s":"");
			return;
		}			
		else if (af5z2->duration >= 3600 && af5z2->duration < 86400) // 1 hour or more?
		{
			int hours;
			hours = (af5z2->duration / 60) / 60;

			int minutes;
			minutes = (af5z2->duration / 60) - (hours * 60);

			int seconds;
			seconds = af5z2->duration - (((hours * 60) * 60) + (minutes * 60));

			if (minutes == 0 && seconds == 0)
				send_to_char(ch, "%d hour%s.", 
				hours, hours > 1 ? "s":"");
			else if (minutes == 0 && seconds > 0)
				send_to_char(ch, "%d hour%s, %d second%s.", 
				hours, hours > 1 ? "s":"",
				seconds, seconds > 1 ? "s":"");
			else if (minutes > 0 && seconds == 0)
				send_to_char(ch, "%d hour%s, %d minute%s.", 
				hours, hours > 1 ? "s":"",
				minutes, minutes > 1 ? "s":"");
			else
				send_to_char(ch, "%d hour%s, %d minute%s, %d second%s.", 
				hours, hours > 1 ? "s":"",
				minutes, minutes > 1 ? "s":"",
				seconds, seconds > 1 ? "s":"");
			return;
		}			
		else if (af5z2->duration > 60 && af5z2->duration < 3600) // 1 minute or more
		{
			int minutes;
			minutes = af5z2->duration / 60;

			int seconds;
			seconds = af5z2->duration - (minutes * 60);

			if (minutes > 1 && seconds > 1)
				send_to_char(ch, "%d minutes, %d seconds.", minutes, seconds);
			else if (minutes > 1 && seconds == 1)
				send_to_char(ch, "%d minutes, %d second.", minutes, seconds);
			else if (minutes > 1 && seconds == 0)
				send_to_char(ch, "%d minutes.", minutes);
			else
				send_to_char(ch, "%d minute, %d seconds.", minutes, seconds);
			return;
		}			
		else
		{
			if (af5z2->duration > 1)
				send_to_char(ch, "%d seconds.", af5z2->duration);
			else
				send_to_char(ch, "1 second.");
			return;
		}
	}
}