16,555
社区成员
发帖
与我相关
我的任务
分享
double tt;
int m;
public int Choose(int mon)
{
switch (mon)
{
case 1:
m = 0;
break;
case 2:
m = 1;
break;
case 3:
m = 1;
break;
case 4:
m = 2;
break;
case 5:
m = 2;
break;
case 6:
m = 3;
break;
case 7:
m = 3;
break;
case 8:
m = 4;
break;
case 9:
m = 4;
break;
case 10:
m = 5;
break;
case 11:
m = 5;
break;
case 12:
m = 6;
break;
}
return m;
}
public double tx(DateTime rq)
{
int month = rq.Month;
int dayue = Choose(month);
int runri = IsDate(rq.Year + "-2-29") ? 1 : 0;
tt = rq.Year + (rq.Month - 1) / 12 + (rq.Day + dayue + runri) / 365 + (rq.Hour + rq.Minute / 60) / (365 * 24);
return tt;
}
public static bool IsDate(string str)
{
if (string.IsNullOrEmpty(str)) return false;
DateTime date;
return DateTime.TryParse(str, out date);
}
private void button3_Click(object sender, EventArgs e)
{
string s="2014/11/24 12:30:50";
DateTime d=Convert.ToDateTime(s) ;
double db = tx(d);
}
在vb.net里很多与vb差不多
Variant在vb.net里用Object
Day->DateAndTime.Day
Dim a As Double
a = tx("2014/1/24 12:30:50")
Debug.Print(a)
Public Function tx(ByVal rq As Object) As Double
Dim dayue, runri
dayue = Choose(Month(rq), 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6)
runri = IIf(IsDate(Year(rq) & "-2-29"), 1, 0)
tx = Year(rq) + (Month(rq) - 1) / 12 + (DateAndTime.Day(rq) + dayue + runri) / 365 + (Hour(rq) + Minute(rq) / 60) / (365 * 24)
End Function