Only a minor thought but if you replace the formulas with variables, I think it makes the code easier to read.
SET NOCOUNT ON
DECLARE @crdate DATETIME,
@days varchar(3),
@hr VARCHAR(50),
@min-2 VARCHAR(5),
@today DATETIME
SET @today = GETDATE()
SELECT @crdate=crdate FROM sysdatabases WHERE NAME='tempdb'
SET @min-2 = DATEDIFF (mi,@crdate,@today)
SET @days= @min-2/1440
SET @hr = (@min/60) - (@days * 24)
SET @min-2= @min-2 - ( (@hr + (@days*24)) * 60)
PRINT 'SQL Server "' + CONVERT(VARCHAR(20),SERVERPROPERTY('SERVERNAME'))+'" is Online for the past '
+@days + ' days & '
+@hr+' hours & '
+@min+' minutes'
IF NOT EXISTS (SELECT 1 FROM master.sys.sysprocesses WHERE program_name = N'SQLAgent - Generic Refresher')
BEGIN
PRINT 'SQL Server is running but SQL Server Agent running'
END
ELSE
BEGIN
PRINT 'SQL Server and SQL Server Agent both are running'
END
David