"Best before" puzzle
You should avoid using global variables. If you import this code into a future project it might cause problems -- name conflicts etc.

If you must do this, put them in an anonymous namespace so that they're only in scope for this file:

namespace
{
    int my;
    int globals;
    int defined;
    int here;
}

The declaration of Check_date() is not necessary here:

void Check_date();
void Check_date()
{

This could perhaps written better:

for (int x=0, y=1; y&lt;=3; y++, x++)
{
    while (input[x] !='/' &amp;&amp; x !=input.length()) ss&lt;&lt;input[x++];
    ss&gt;&gt; date[y];
    ss.clear();
}


There is little point using x in the for loop as you don't have an exit condition for it. Also, I would prefer a more meaningful name.

Instead, perhaps:

int inputPos = 0;
for(int dateIndex = 1; dateIndex &lt;= 3; ++dateIndex)
{
    while(input[inputPos] != '/' &amp;&amp; inputPos != input.length()) 
    {
        ss &gt;&gt; date[dateIndex];
        ss.clear();
    }
    ++inputPos;
}

More generally you've written this in a very C-like style -- I would have defined a type (class) for Date, which would have month and day members. Then the logic for whether month lengths are valid can be encapsulated properly.

You could also encapsulate the read-from-stream code using an iostreams extractor.