簡體   English   中英

如何將字符串轉換為整數?

[英]How to convert a string to integer?

在我的應用程序中,有一個名為“ Login”文本框 ,用於存儲empoloyee的登錄時間。 現在,我只想轉換此字符串並將小時和分鍾分別存儲在2個不同的Integer變量中。 例如:

Login.text="12:40 PM"; // 12:40 PM is system generated time
int HRS=12;
int MINS=40;

我已經嘗試了以下代碼片段:

string log = Login.Text;
char[] mychar = {'A','M','P'};
int workhrs = Convert.ToInt32(System.DateTime.Now.ToString("HH"));
int logtime = Convert.ToInt32(log.TrimEnd(mychar));
var dt = DateTime.ParseExact(text,"hh:mm tt",CultureInfo.InvariantCulture);
int h = dt.Hour;
int m = dt.Minute;

您可以通過簡單的拆分來做到這一點:

string s = "12:40 PM";
int HRS= Convert.ToInt32(s.Split(':')[0]);
int MINS= Convert.ToInt32(s.Split(':')[1].Split(' ')[0]);

或者您使用DateTime.ParseExact()方法,例如:

string s = "12:40 PM";
DateTime time = DateTime.ParseExact(s,"hh:mm tt",CultureInfo.InvariantCulture);
int HRS = time.Hour;
int MINS= time.Minute;
string StringWithNumberIn = "42";
int SomeValue = Convert.ToInt32(StringWithNumberIn);

或者,您可以使用Int32.TryParse ,如果字符串中的值實際上不是有效的int,則不會引發異常。

首先,您的字符串是如何呈現的,它的文化是不變的?

var myDate = DateTime.Parse(Login.Text);
int HRS = myDate.Hour;
int MINS = myDate.Minute;

您可以將文本轉換為DateTime對象,然后從那里提取。

DateTime time = DateTime.Parse(Login.Text);
int minute = time.Minute;
int hour = time.Hour;

DateTime.Parse()的一個常見問題是人們只提供一種格式,這會導致一些不太明顯的失敗,因為該示例中只有一次。 例如,在所有以前發布的示例中,小時都被指定為“ hh”,這對於原始作者發布的“ 12”非常有用,但是如果小時是單個數字,如“ 8”,則失敗(以“ hh成功” “則必須是“ 08”)。 如果更改為“ h”,則將接受“ 8”,但是“ 12”將失敗! 答案是創建一個允許格式的數組 ,並將其傳遞給Parse()。 以下代碼適用於大多數時間輸入,包括軍事時間:

string s = "8:40 PM"; // or from your login box

DateTime time;
string[] formats = {"h:mm tt", "hh:mm tt", "H:mm", "HH:mm"};
if (DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out time))
{
    int HRS = time.Hour;
    int MINS = time.Minute;

    Console.WriteLine("HRS = " + HRS.ToString());
    Console.WriteLine("MINS = " + MINS.ToString());
}
else
{
    Console.WriteLine("Invalid time format!");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM