#################################################################################################
# .profile_sub_date		(c) R. H. Reepe 12th December 1996	Version 1.0		#
#################################################################################################
# 961212 RHR Genesis

#===================================================================================
s_timestamp()			# (c) R. H. Reepe. Returns string "YYYY-MM-DD HH:MM:SS"
#===================================================================================
{
	date "+%Y-%h-%d %H:%M:%S "
}

#===================================================================================
s_now()			# (c) R. H. Reepe. Returns string "YYYYMMDDHHMMSS"
#===================================================================================
{
	date +%Y%m%d%H%M%S
}

#===================================================================================
s_date()			# (c) R. H. Reepe. Returns string "YYYYMMDD"
#===================================================================================
{
	date +%Y%m%d
}

#===================================================================================
s_time()			# (c) R. H. Reepe. Returns string "HHMMSS"
#===================================================================================
{
	date +%H%M%S
}

#===================================================================================
s_interval()			# (c) R. H. Reepe. Returns time difference "HHMMSS"
#===================================================================================
# Arg_1 = start_time (Format - see s_time)
# Arg_2 = stop_time  (Format - see s_time)
{
	_hour_1=`echo "$1" | cut -c1-2`
	_mins_1=`echo "$1" | cut -c3-4`
	_secs_1=`echo "$1" | cut -c5-6`
	_hour_2=`echo "$2" | cut -c1-2`
	_mins_2=`echo "$2" | cut -c3-4`
	_secs_2=`echo "$2" | cut -c5-6`
	_secs_3=`expr $_secs_2 - $_secs_1`
	if [ $_secs_3 -lt 0 ]
	then
		_secs_3=`expr $_secs_3 + 60`
		_mins_1=`expr $_mins_1 + 1`
	fi
	_mins_3=`expr $_mins_2 - $_mins_1`
	if [ $_mins_3 -lt 0 ]
	then
		_mins_3=`expr $_mins_3 + 60`
		_hour_1=`expr $_hour_1 + 1`
	fi
	_hour_3=`expr $_hour_2 - $_hour_1`
	for _num in $_hour_3 $_mins_3 $_secs_3
	do
		if [ $_num -lt 10 ]
		then
			/usr/5bin/echo "0$_num\c"
		else
			/usr/5bin/echo "$_num\c"
		fi
	done
	echo ""
}

#===================================================================================
s_month_length()		# (c) R. H. Reepe. Returns number of days in month
#===================================================================================
# Arg_1 = MONTH_NUMBER
{
	if [ $1 -lt 1 ] || [ $1 -gt 12 ]
	then
		echo "Function:s_month_length(): [$1] is not between 1 and 12"
		exit
	fi
	_lengths="312831303130313130313031"
	_cut2=`expr $1 + $1`
	_cut1=`expr $_cut2 - 1`
	echo "$_lengths" | cut -c$_cut1-$_cut2
}

#===================================================================================
s_back_date()			# (c) R. H. Reepe. Returns back dated date strings
#===================================================================================
# Arg_1 = DAYS_PREVIOUS
{
	_date_d=`date +%d`
	_date_m=`date +%m`
	_date_y=`date +%y`

	_days=$1

	#-------------------------------------
	# Days Back Size Test	#
	#-------------------------------------
	if [ $_days -lt $_date_d ]
	then
		_date_d=`expr $_date_d - $_days`
	else
		_days=`expr $_days - $_date_d`
		_date_m=`expr $_date_m - 1`
		_month_length=`s__month_length $_date_m`
		while [ $_days -gt $_month_length ]		
		do
			_days=`expr $_days - $_month_length`
			_date_m=`expr $_date_m - 1`
			_month_length=`s__month_length $_date_m`
		done
		_date_d=`expr $_month_length - $_days`
	fi

	#-------------------------------------
	# Date String Padding	#	
	#-------------------------------------
	if [ $_date_d -lt 10 ]
	then
		_date_d=`expr $_date_d + 0`
		_date_d="0"$_date_d
	fi
	if [ $_date_m -lt 10 ]
	then
		_date_m=`expr $_date_m + 0`
		_date_m="0"$_date_m
	fi
	echo $_date_y $_date_m $_date_d
}