Where season do we live?

When I was developing a website, we’ve a little problem. We’ve to personalize the header with the season where we live.


I thought some ways to solve this and finally I decided to inherit the webcontrol System.Web.UI.WebControls.Image and inside the event OnLoad change the image to show. But I ned a function that it isn’t inside .NET, to know the season. For it I wrote the following enum and function:



public enum Season
{
    Winter,
    Spring,
    Summer,
    Automn
}
 
public static Season getSeason(DateTime date)
{
    Season season = null;
 
    //Winter 
    if (date.Month >= 1 & date.Month <= 3)
    {
        switch (date.Month)
        {
            case 3:
                if (date.Day <= 20)
                {
                    season = Season.Winter;
                }
                break;
            default:
                season = Season.Winter;
                break;
        }
    }
 
    //Spring 
    if (date.Month >= 3 & date.Month <= 6)
    {
        switch (date.Month)
        {
            case 3:
                if (date.Day > 20)
                {
                    season = Season.Spring;
                }
                break;
            case 6:
                if (date.Day <= 20)
                {
                    season = Season.Spring;
                }
                break;
            default:
                season = Season.Spring;
                break;
        }
    }
 
    //Summer 
    if (date.Month >= 6 & date.Month <= 9)
    {
        switch (date.Month)
        {
            case 6:
                if (date.Day > 20)
                {
                    season = Season.Summer;
                }
                break;
            case 9:
                if (date.Day <= 20)
                {
                    season = Season.Summer;
                }
                break;
            default:
                season = Season.Summer;
                break;
        }
    }
 
    //Autumn 
    if (date.Month >= 9 & date.Month <= 12)
    {
        switch (date.Month)
        {
            case 9:
                if (date.Day > 20)
                {
                    season = Season.Automn;
                }
                break;
            case 12:
                if (date.Day <= 20)
                {
                    season = Season.Automn;
                }
                else
                {
                    season = Season.Winter;
                }
                break;
            default:
                season = Season.Automn;
                break;
        }
 
    }
    return season;
}

Now, we only have to override the OnLoad event in the constructor and select the correct image:



public SeasonsRotator() 
{ 
    this.Load += new EventHandler(SeasonsRotator_Load); 
}
 
void SeasonsRotator_Load(object sender, EventArgs e) 
{ 
    switch (getSeason(DateTime.Now)) 
    { 
        case Season.Winter: 
            this.ImageUrl = “~/winter.jpg”; 
            break; 
        case Season.Spring: 
            this.ImageUrl = “~/spring.jpg”; 
            break; 
        case Season.Summer: 
            this.ImageUrl = “~/summer.jpg”; 
            break; 
        case Season.Automn: 
            this.ImageUrl = “~/automn.jpg”; 
            break; 
        default: 
            break;
    } 
} 


http://eugenioestrada.es/blog/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *