属性以返回格式化的单独的月、日、年属性
本文关键字:属性 返回 单独 格式化 | 更新日期: 2023-09-27 18:24:58
这个让我很困惑,因为我认为这不能用简单的DateTime方法来完成,除非有我不理解的地方。
它应该像这样简单:以XX/XX/XXXX格式格式化要读取的变量,如果其中一个整数为0,控制台输出应该读取~~unspecified~~
namespace TheTime
{
public class Time
{
private int month;
private int day;
private int year;
public int Mont{}
public int Day {}
public int Year {}
你到底是什么意思还不太清楚。但是,如果你想从控制台读取日期,如果不成功,就失败了,你可以这样做:
string dateString = …;
DateTime date;
if (!DateTime.TryParseExact(
dateString, "dd/MM/yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
Console.WriteLine("~~unspecified~~");
return;
}
//work with date
如果dateString
在任何部分中包含0
,或者格式不正确,则此代码将写入~~unspecified~~
,并且不会继续。
将此方法添加到Time
类中。
public string FormattedDate()
{
if (month == 0 || day == 0 || year == 0)
return string.empty;
DateTime dt = new DateTime(year, month, day);
return dt.ToString("d"); // returns mm/dd/yyyy
}
然后使用它:
string sDate = myTimeObj.FormattedDate();
if(sDate == string.empty)
{
Console.WriteLine("~~unspecified~~");
}
else
{
// it worked fine
}
public class Time
{
private int month;
private int day;
private int year;
public override string ToString()
{
if(month == 0 || day == 0 || year == 0)
{
return "~~unspecified~~";
}
DateTime date = new DateTime(year, month, day);
return date.ToString();
}
}
您需要使用ReadLine 获取字符串
U可以使用类似的ParseExact方法
DateTime yourdate = DateTime.ParseExact(your_read_string, "dd/MM/yyyy", CultureInfo.InvariantCulture)