小编Dan*_*iff的帖子

C#TimeSpan.Parse无效格式返回错误的值而不是异常

TimeSpan.Parse("23:00:00")返回23小时.

TimeSpan.Parse("24:00:00")返回24天!

我意识到我犯了一个错误,因为允许的小时范围是0-23.但是如果你试图解析一个超出范围的值,你会得到一个例外.在超出范围值的小时数的情况下,解析器错误地假设您指的是几天而不是几小时.

有人可以解释一下吗?

这个例子在这里涵盖了这个主题,并指出 http://msdn.microsoft.com/en-us/magazine/ee309881.aspx

TryParse似乎也是如此.尽管文档声明解析失败,但我得到了24天.

http://msdn.microsoft.com/en-us/library/3z48198e

//            String to Parse                TimeSpan
//            ---------------   ---------------------
//                          0        00:00:00
//                         14     14.00:00:00
//                      1:2:3        01:02:03
//                  0:0:0.250        00:00:00.2500000
//             10.20:30:40.50     10.20:30:40.5000000
//        99.23:59:59.9999999     99.23:59:59.9999999
//        0023:0059:0059.0099        23:59:59.0099000
//                     23:0:0        23:00:00
//                     24:0:0   Parse operation failed.
//                     0:59:0        00:59:00
//                     0:60:0   Parse operation failed.
//                     0:0:59        00:00:59
//                     0:0:60   Parse operation failed.
//                        10:   Parse operation failed.
//                       10:0        10:00:00
//                        :10   Parse operation failed.
//                       0:10        00:10:00
//                     10:20:   Parse …
Run Code Online (Sandbox Code Playgroud)

c# timespan

19
推荐指数
1
解决办法
2888
查看次数

DirectoryExists("c:temp \\ foo")在目录不存在时返回true!

好吧,我有点奇怪的东西.我意识到我没有正确格式化路径名是错误的,但我希望以下测试返回false,特别是因为该文件夹不存在.

DirectoryExists("C:temp\\foo")
Run Code Online (Sandbox Code Playgroud)

但事实上,即使目录不存在,它也会返回true!

代码应该是

DirectoryExists("C:\\temp\\foo")
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么我从第一个版本中得到误报吗?我希望它返回false或者抛出异常,但不能返回true.

.net c# file-io

12
推荐指数
1
解决办法
3219
查看次数

.NET如何将Persian/Farsi日期字符串(Jalali日历)解析为DateTime对象?

我遇到了几个很棒的代码库,用于将波斯语(Jalali日历)日期转换为格里高利日期.但是,我的原始源是一个字符串,而不是DateTime对象.在.NET框架中似乎没有官方支持使用波斯语日历解析日期(如果我错了,请告诉我!).

我的目标:

string persianDateString="1390/02/07";
DateTime persianDateTime = MyPersianParser.Parse(persianDateString, "yyyy/mm/dd");
Run Code Online (Sandbox Code Playgroud)

当然,有些日期可能会在一周中的几个月和几天使用单词名称,因此我希望能够支持标准格式字符串协议.

编辑:我知道典型的DateTime.Parse功能.无法使用波斯日历,因为Microsoft将其保留为不完整和/或无法修复它.如果有人能指出一些波斯语日期解析代码,我将不胜感激.如果没有,我会请求有人删除问题,然后自己写.

.net datetime persian farsi

12
推荐指数
2
解决办法
9009
查看次数

你如何使用jQuery获取asp:RadioButton的选中值?

我需要做这样的事情:

<asp:RadioButton ID="rbDate" runat="server" Text="Date" GroupName="grpPrimary" />
Run Code Online (Sandbox Code Playgroud)

并且能够在jQuery中检查单选按钮的检查值的值,但我这样的尝试不会返回true/false.

if ($('[name=rbDate]').attr("Checked"))

if ($('[name=rbDate]').attr("Checked").val())

if ($('[name=rbDate]:checked').val())
Run Code Online (Sandbox Code Playgroud)

一点帮助?

c# asp.net jquery radio-button checked

8
推荐指数
2
解决办法
3万
查看次数

需要在javascript中计算offsetRight

我需要计算DOM对象的offsetRight。我已经有一些相当简单的代码来获取offsetLeft,但是没有javascript offsetRight属性。如果我添加offsetLeft和offsetWidth,那行得通吗?或者,还有更好的方法?

function getOffsetLeft(obj)
{
    if(obj == null)
        return 0;
    var offsetLeft = 0;
    var tmp = obj;
    while(tmp != null)
    {
        offsetLeft += tmp.offsetLeft;
        tmp = tmp.offsetParent;
    }
    return offsetLeft;
}

function getOffsetRight(obj)
{
    if (obj == null)
        return 0;
    var offsetRight = 0;
    var tmp = obj;
    while (tmp != null)
    {
        offsetRight += tmp.offsetLeft + tmp.offsetWidth;
        tmp = tmp.offsetParent;
    }
    return offsetRight;    
}
Run Code Online (Sandbox Code Playgroud)

javascript offset

7
推荐指数
3
解决办法
1万
查看次数

如何对非阿拉伯语等非英语语言使用DateTime.TryParse()?

我需要将字符串转换为非英语语言的DateTime对象.我已经看过许多将DateTime转换为其他语言的字符串的例子,但不是相反.

这似乎不起作用:

CultureInfo provider = new CultureInfo("ar-AE");    // Arabic - United Arab Emirates

string sample = "???????? 16 ???? 2011"; // Arabic date in Gregorian calendar
DateTime result;
DateTime expected = new DateTime(2011, 3, 16);   // the expected date
bool b;

b = DateTime.TryParse(sample, provider, DateTimeStyles.None, out result);

Assert.IsTrue(b);
Assert.AreEqual(expected, result);
Run Code Online (Sandbox Code Playgroud)

另外,我需要处理其他日历中的字符串.这是我尝试过的,它似乎也没有用.

CultureInfo provider = new CultureInfo("ar-AE");    // Arabic - United Arab Emirates
provider.DateTimeFormat.Calendar = new System.Globalization.HijriCalendar();
// Wednesday, March 16, 2011, 11 Rabi second in 1432
string sample = …
Run Code Online (Sandbox Code Playgroud)

c# globalization datetime parsing

7
推荐指数
1
解决办法
5182
查看次数

如何结合RegularExpressionValidator控件和RequiredFieldValidator?

我经常使用也是必填字段的正则表达式验证器.这导致页面上看起来像冗余控件.正则表达式验证器没有"必需"属性,这意味着我需要另一个控件.像这样:

<asp:TextBox ID="tbCreditCardNumber" runat="server" Width="200"></asp:TextBox>
<asp:RegularExpressionValidator ID="revCreditCardNumber" runat="server"
    ControlToValidate="tbCreditCardNumber" ValidationGroup="CheckoutGroup" ErrorMessage="Invalid Credit Card Number!"
    ValidationExpression="^(3[47][0-9]{13}|5[1-5][0-9]{14}|4[0-9]{12}(?:[0-9]{3})?)$">*</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="rfvCreditCardNumber" runat='server' ControlToValidate="tbCreditCardNumber" ValidationGroup="CheckoutGroup"
    ErrorMessage="Credit Card Number Required">*</asp:RequiredFieldValidator>
Run Code Online (Sandbox Code Playgroud)

有没有办法组合这两个控件,所以我不必键入这么多代码?

c# regex asp.net validation

4
推荐指数
2
解决办法
1万
查看次数

C#:根据不同枚举类型的枚举值返回枚举值

所以我希望有一个属性getter,它根据不同类型的枚举值返回枚举值,而不必求助于long switch语句.有没有办法使用一个或多个索引来匹配两个枚举列表?

public enum LanguageName
    {
        Arabic,
        Chinese,
        Dutch,
        English,
        Farsi,
        French,
        Hindi,
        Indonesian,
        Portuguese,
        Spanish,
        Urdu
    }

    public enum LanguageISOCode
    {
        ara,
        zho,
        dut,
        eng,
        fas,
        fre,
        hin,
        ind,
        por,
        spa,
        urd
    }

public class language
{
    public language()
    {
    }

    public LanguageName Name
    {
        get
        {
           // get the Name enum based on the Code enum
        }
        set;
    }

    public LanguageISOCode Code
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# enums

1
推荐指数
1
解决办法
1158
查看次数