如何将int转换为xs:gDay?

时间:2017-02-08 12:10:13

标签: c# xml

如何将int转换为xml类型gDay的字符串?

示例:

var day = 1;
var month = 1;
var year = 2000;

var xElement = new XElement(
    "Day",
    new XAttribute("Day", ConvertToGDay(day)),
    new XAttribute("Month", ConvertToGMonth(month)),
    new XAttribute("Year", ConvertToGYear(year))
);

xElement必须如此:

<Day Day="---01" Month="--01--" Year="2000" />

1 个答案:

答案 0 :(得分:1)

您似乎引用了XML Schema gDay和gMonth类型,它们代表了重复发生的事件。根据gDaygMonth的规范,它们的表示形式为---DD和{{1 }}

您可以使用int.ToStringString.Formata format string生成用短划线填充的字符串,例如:

--MM

时返回3.ToString("---00")
---03

返回11.ToString("--00")

您不需要--11的特殊格式,除非您打算在1000之前过年。在这种情况下,您可以使用gYear

使用ToString("0000")的等效语句将是:

String.Format

等,或者,通过在C#6中使用字符串插值,

String.Format("---{0:00}",day);
String.Format("--{0:00}",month);

String.Format允许您为其他类型生成表示,例如$"---{day:00}" $"--{month:00}" 您使用gMonthDayString.Format("--{0:00}-{1:00}",month,day)