Here's that code Cintax. Ive changed some things and haven't change some of the variables back to bytes...ect so theres a few things that might throw you off as to why they are what they are lol

#define LEDPWM0 0

#define LEDPWM1 1

#define LEDPWM2 2

#define LEDPWM3 3

#define LEDPWM4 4

#define LEDPWM5 5

//********************************************************************************

*************************************************

//Globals Vavriables

void ParsSec(long,byte,byte,byte);

long calcSec(long,long);

long calcTime(long,long);

short Ndays;

int rhour = 0, rmin = 0, shour = 0, smin = 0;

byte PWMports[] ={

3,5,6,9,10,11};

int ChannelValue[] = {

0,0,0,0,0,0};

byte hourfp = 0, minfp = 0;

//********************************************************************************

*************************************************

//********************************************************************************

*************************************************

//Calculate Sunrise/set by date & predefined season & rise/set times

void Seasons()

{

//Set the hour you want the calculations of rise an set to be based on

int UserRiseHour = 9;

int UserSetHour = 22;

#define forceseasoncalculation

static byte ssn , ssnp = 0 , ssnpt ;

long stime, wstime, vstime, wrtime, rtime, vrtime;

int wrhour,wrmin,wrsec,wshour,wsmin,wssec,rsec,ssec,vrhour,vrmin,vrsec,vshour,vsmin,

vssec;

int iDiffrise = 0;

int iDiffset = 0;

int risediffperday = 0;

int setdiffperday = 0;

int totalrise = 0;

int totalset = 0;

byte s=0;

int DaysPerYear;

//rise and set times set by hour and minute. there are 4 seasons however there are 8 highs & lows in rise and set throughout the year

//first spot is second half of winter starting jan 1st - DO NOT CHANGE

int risehour[8]= {

UserRiseHour+1,UserRiseHour+1,UserRiseHour+1,UserRiseHour,UserRiseHour,UserRiseH

our-1,UserRiseHour,UserRiseHour };/*{

7,7,7,6,6,5,6,6 };*/

int riseminute[8]={

00,30,00,30,00,30,00,30 };

int sethour[8] = {

UserSetHour-2,UserSetHour-1,UserSetHour-1,UserSetHour,UserSetHour,UserSetHour,UserSetHour,UserSetHour-1 };/*{

17,18,18,19,19,19,19,18 };*/

int setminute[8] = {

30,00,30,00,00,30,00,00 };

//

if (hour()==0 && minute()==0 && second()==0) ssnp=0;

#ifdef forceseasoncalculation

if (ssnp==0)

#else

if (hour()==0 && minute()==0 && second()==1 && ssnp==0)

#endif

{

//leapyear or not to define DaysPerYear - DO NOT CHANGE

if (year()%4 == 0 && !(year()%100 == 0 && year()%400 != 0)) {

DaysPerYear=366;

}

else {

DaysPerYear = 365;

}

//Call Day Number Calc to determin day ie december 31st on a non leap year is day 365 - DO NOT CHANGE

DayNumber(year(),month(),day());

//define days between beginning, middle and end of seasons high peaks - DO NOT CHANGE

int seasons[9] ={

0,45,96,135,187,238,283,328,DaysPerYear };

//define season and array pulling variable - DO NOT CHANGE

for (s=0; seasons[s] < Ndays; s++) ssn = s+1, ssnpt = s+1, ssnp = s;

//set loop on array time pulling variable to go back to beginning instead of increasing array size - DO NOT CHANGE

if (ssn >= 7) ssn = 0;

//differece in seconds between two rise/set array times pulled - DO NOT CHANGE

long rise1 = calcSec(risehour[ssn],riseminute[ssn]);

long rise2 = calcSec(risehour[ssnp],riseminute[ssnp]);

iDiffrise = calcTime(rise1, rise2);

long set1 = calcSec(sethour[ssn],setminute[ssn]);

long set2 = calcSec(sethour[ssnp],setminute[ssnp]);

iDiffset = calcTime(set1,set2);

//calculate new sunrise/set difference from array value & last group of code - DO NOT CHANGE

risediffperday = iDiffrise/(seasons[ssnpt]-seasons[ssnp]);

totalrise = risediffperday*(Ndays - seasons[ssnp]);

setdiffperday = iDiffset/(seasons[ssnpt]-seasons[ssnp]);

totalset = setdiffperday*(Ndays - seasons[ssnp]);

//creating time in seconds for main sun rise/set number - DO NOT CHANGE

rtime=calcSec(risehour[ssnp],riseminute[ssnp]);

if (ssnp == 0 || ssnp == 2 || ssnp == 4 || ssnp == 6){

rtime += totalrise;

}

else {

rtime -= totalrise;

}

stime=calcSec(sethour[ssnp],setminute[ssnp]);

if (ssnp == 1 || ssnp == 3 || ssnp == 5 || ssnp == 7){

stime -= totalset;

}

else {

stime += totalset;

}

//These are the offset variables

// DO NOT CHANGE the operators in these equations ie +-

// The number is in seconds (1200) change this number to change the offset for each color

wrtime = 1200;//w r/stime is for Whites - shorter time span then blues

wstime = -1200;

vrtime = -1200;//v r/stime is for Violets - Longer time then blues

vstime = 1200;

//turning seconds back to Hours:Minutes:Seconds

ParsSec(rtime, hourfp, minfp, 0);

{

rhour=hourfp, rmin = minfp;

}

ParsSec(stime, hourfp, minfp, 0);

{

shour=hourfp, smin = minfp;

}

ParsSec(rtime, hourfp, minfp, wrtime);

{

wrhour=hourfp, wrmin = minfp;

}

ParsSec(stime, hourfp, minfp, wstime);

{

wshour=hourfp, wsmin = minfp;

}

ParsSec(rtime, hourfp, minfp, vrtime);

{

vrhour=hourfp, vrmin = minfp;

}

ParsSec(stime, hourfp, minfp, vstime);

{

vshour=hourfp, vsmin = minfp;

}

//This is the PWM Slope for each channel, each channel pulls an array value from above(hour,minute) to use, how you set them is up to you.

//Just always use a Rise hour in a Rise spot, always a set hour in a set spot ect ect

ChannelValue[LEDPWM0]=PWMSlope(vrhour,vrmin,vshour,vsmin,20,2.55*85,90,ChannelVa

lue[LEDPWM0]);

ChannelValue[LEDPWM1]=PWMSlope(rhour,rmin,shour,smin,50,2.55*90,90,ChannelValue[

LEDPWM1]);

ChannelValue[LEDPWM2]=PWMSlope(wrhour,wrmin,wshour,wsmin,65,2.55*95,90,ChannelVa

lue[LEDPWM2]);

ChannelValue[LEDPWM3]=PWMSlope(wrhour,wrmin,wshour,wsmin,50,2.55*90,90,ChannelVa

lue[LEDPWM3]);

ChannelValue[LEDPWM4]=PWMSlope(rhour,rmin,shour,smin,20,2.55*85,90,ChannelValue[

LEDPWM4]);

//ChannelValue[LEDPWM5]=PWMSlope(Sunrise[1],Sunrise[2],whSunset[1],whSunset[2],0,1

00,180,ChannelValue[LEDPWM3]);

}

}

//End Seasons Calculation

//********************************************************************************

*************************************************

//********************************************************************************

*************************************************

//Calculators for Seasons function

long calcSec(long hr, long minu)

{

long totalseconds;

totalseconds=(hr*3600)+(minu*60);

return totalseconds;

}

long calcTime(long seconds1, long seconds2)

{

long timediff=abs(seconds1-seconds2);

return timediff;

}

void DayNumber(unsigned int y, unsigned int m, unsigned int d)

{

int days[]={

0,31,59,90,120,151,181,212,243,273,304,334 }; // Number of days at the beginning of the month in a not leap year.

//Start to calculate the number of day

if (m==1 || m==2){

Ndays = days[(m-1)]+d; //for any type of year, it calculate the number of days for January or february

} // Now, try to calculate for the other months

else if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0){ //those are the conditions to have a leap year

Ndays = days[(m-1)]+d+1; // if leap year, calculate in the same way but increasing one day

}

else { //if not a leap year, calculate in the normal way, such as January or February

Ndays = days[(m-1)]+d;

}

}

void ParsSec(long int totalsec,byte hourfp, byte minfp, byte offset)

{

totalsec+=offset;

hourfp=totalsec/3600;

totalsec=totalsec%3600;

minfp=totalsec/60;

totalsec=totalsec%60;

byte sec=totalsec;

if(sec > 30) minfp++;

if(minfp==60) minfp=0, hourfp+=1;

}

//End calculators

//********************************************************************************

*************************************************

**Edited by Deckoz2302, 08 February 2012 - 04:34 PM.**