C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C#:如何简化这个数字字符串到各种日期部分代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个字符串,长度可能在1到8个字符之间.我需要把它们转换成一天,一个月和一年.对于缺少的部分,我将使用当前的部分.

我现在的代码有点大而且丑陋,我想知道是否有人对如何做到这一点有更聪明的想法.

我目前的代码如下:

var day = datetiR_782_11845@e.Now.Day;
var month = datetiR_782_11845@e.Now.Month;
var year = datetiR_782_11845@e.Now.Year;

switch (digits.Length)
{
    case 1:
    case 2:
        day = int.Parse(digits.SubString(0));
        break;

    case 3:
    case 4:
        day = int.Parse(digits.SubString(0,2));
        month = int.Parse(digits.SubString(2));
        break;
    case 5:
    case 6:
    case 7:
    case 8:
        day = int.Parse(digits.SubString(0,2));
        month = int.Parse(digits.SubString(2,2));
        year = int.Parse(digits.SubString(4));
        break;
    default:
        break;
}

注意:我知道这不是虑文化,但它不应该:)

我试着这样做:

day = int.Parse(digits.SubString(0,2));
if(digits.Length > 2)
    month = int.Parse(digits.SubString(2,2));
if(digits.Length > 4)
    year = int.Parse(digits.SubString(4,4));

但如果字符串长度为1,3,5,6或7位,它将抛出ArgumentOutOfRangeException …因此效果不佳.如果没有足够的字母来“填充”子字符串,那么只有SubString方法才会占用尽可能多的字母而不是失败…

可以使用正则表达式吗?

解决方法

看看 TryParseExact方法.

datetiR_782_11845@e date;
if (datetiR_782_11845@e.TryParseExact(
    digits,new[] { "dd","ddMM","ddMMyyyy" },CultureInfo.InvariantCulture,Datetimestyles.None,out datE))
{
    int day = date.Day;
    int month = date.Month;
    int year = date.Year;    
}

大佬总结

以上是大佬教程为你收集整理的C#:如何简化这个数字字符串到各种日期部分代码全部内容,希望文章能够帮你解决C#:如何简化这个数字字符串到各种日期部分代码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。