Solved

DateTime 01/01/0001

Posted on 2016-08-09
7
57 Views
Last Modified: 2016-08-09
hi experts

this variable model.fec_obs_concal contains the value: 01/01/0001 when not selected date,
the value could be null or empty


public DateTime fec_obs_concal { get; set; }

public DateTime concal_fecha { get; set; }
fecha01010001.png
0
Comment
Question by:enrique_aeo
  • 2
  • 2
  • 2
  • +1
7 Comments
 
LVL 69

Expert Comment

by:Éric Moreau
ID: 41749004
and your question is?
0
 
LVL 26

Accepted Solution

by:
Shaun Kline earned 500 total points
ID: 41749006
If you need the variable to allow for null, use a Nullable DateTime declaration:

public DateTime? fec_obs_concal { get; set; }
0
 

Author Comment

by:enrique_aeo
ID: 41749015
i do
public DateTime? fec_obs_concal { get; set; }

i have this error:
CS0266 C# Cannot implicitly convert type 'System.DateTime?' to 'System.DateTime'. An explicit conversion exists (are you missing a cast?)
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 69

Expert Comment

by:Éric Moreau
ID: 41749022
have you tried Shaun comment?
0
 
LVL 26

Expert Comment

by:Shaun Kline
ID: 41749025
Did you also change the definition of concal_fecha to be a Nullable DateTime?

You will need to look through your code for other places where dates will need to allow nulls and make the needed changes.
0
 

Author Closing Comment

by:enrique_aeo
ID: 41749039
thanks

I made the change throughout the project
0
 
LVL 32

Expert Comment

by:it_saige
ID: 41749058
Date's cannot be empty.  The default value (which equates to the DateTime.Min value) is '01/01/0001 12:00 AM'.  Proof of concept -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EE_Q28962384
{
	class Program
	{
		static DateTime date1;

		static void Main(string[] args)
		{
			Console.WriteLine("Date1 = {0}", date1);
			Console.WriteLine("Default DateTime = {0}", default(DateTime));
			Console.WriteLine("DateTime.Min = {0}", DateTime.MinValue);
			Console.ReadLine();
		}
	}
}

Open in new window

Produces the following output -Capture.JPGIf you try to parse an empty string you end up with -Capture.JPGWhich means you are left with using a try...catch or DateTime.TryParse.  If the parse fails, the output is still the MinValue.  Proof of concept:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EE_Q28962384
{
	class Program
	{
		static DateTime date1;

		static void Main(string[] args)
		{
			Console.WriteLine("Date1 = {0}", date1);
			Console.WriteLine("Default DateTime = {0}", default(DateTime));
			Console.WriteLine("DateTime.Min = {0}", DateTime.MinValue);
			if (DateTime.TryParse("", out date1))
				Console.WriteLine("Date1 has changed successfully - {0}", date1);
			else
				Console.WriteLine("Date1 failed to changed, MinValue assigned - {0}", date1);
			Console.ReadLine();
		}
	}
}

Open in new window

Which produces the following output -Capture.JPG
Just an FYI, trying to parse a null value results in the MinValue being set for the date.

That being said, as the others have stated you can add Null support to the DateTime variable by specifying a Nullable<DateTime> or DateTime?.  This will allow for you to support null values for Dates, but remember, that DateTime's cannot be empty.

-saige-
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now