该如何加一个闰年的判断?

gootey 2010-05-25 02:10:49
这是我的想法,但是会报错:无法将类型“string”转换为“int”

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Default4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ArrayList arrn = new ArrayList();
for (int i = 2008; i <= 2030; i++) arrn.Add(i.ToString());
nian.DataSource = arrn;
nian.DataBind();
ArrayList arry = new ArrayList();
arry.Add("月");
for (int i = 1; i <= 12; i++) arry.Add(i.ToString());
yue.DataSource = arry;
yue.DataBind();
}
}
protected void yue_SelectedIndexChanged(object sender, EventArgs e)
{
ArrayList arrr = new ArrayList();
arrr.Add("日");
switch (yue.SelectedValue)
{
case "2":
if ((int)(nian.SelectedValue))%4==0)//换成 if ((Convert.ToInt32(nian.SelectedValue))%4==0)也不行
{
for (int i = 1; i <= 29; i++) arrr.Add(i.ToString());
ri.DataSource = arrr;
ri.DataBind();
}
else
for (int i = 1; i <= 28; i++) arrr.Add(i.ToString());
ri.DataSource = arrr;
ri.DataBind();
break; //还有这里好像也有问题,大鸟们帮忙看一下。谢谢啦
case "1":
case "3":
case "5":
case "7":
case "8":
case "10":
case "12":
for (int i = 1; i <= 31; i++) arrr.Add(i.ToString());
ri.DataSource = arrr;
ri.DataBind();
break;
case "4":
case "6":
case "9":
case "11":
for (int i = 1; i <= 30; i++) arrr.Add(i.ToString());
ri.DataSource = arrr;
ri.DataBind();
break;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string tstr1 = nian.SelectedValue.ToString() +"-"+ yue.SelectedValue.ToString() +"-"+ ri.SelectedValue.ToString();
Label1.Text = tstr1;
}
}

...全文
152 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
gootey 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 vrhero 的回复:]
引用 10 楼 lexfu 的回复:
string转换成int是强转,不能使用int a=(int)string的形式,只能用ConvertTo或者int.Parse()

一知半解,纯属误导...

强制转换就是显式转换,需要使用强制转换运算符...其特征是源变量和目标变量兼容,但由于目标变量的类型大小比源变量小(或者目标变量是源变量的一个基类),因此存在数据丢失的风险...

也……
[/Quote]
嗯,又学习了,谢谢。
gootey 2010-05-25
  • 打赏
  • 举报
回复
没事,现在的药很便宜的,去买点避“孕”药吧。
vrhero 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lexfu 的回复:]
string转换成int是强转,不能使用int a=(int)string的形式,只能用ConvertTo或者int.Parse()
[/Quote]
一知半解,纯属误导...

强制转换就是显式转换,需要使用强制转换运算符...其特征是源变量和目标变量兼容,但由于目标变量的类型大小比源变量小(或者目标变量是源变量的一个基类),因此存在数据丢失的风险...

也就是说,“int a=(int)string的形式”就是强制转换...

“用ConvertTo或者int.Parse()”叫做“使用帮助程序类的转换”不能叫强制转换,用于在不兼容的类型之间进行转换...
gootey 2010-05-25
  • 打赏
  • 举报
回复
搞懂了DateTime.IsLeapYear(year)的用法,再加上int nYear = int.Parse(year)就可以了,呵呵
谢谢各位。
Code従業員 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 gootey 的回复:]
关于ConvertTo,怎么用呢?举个例子行么
[/Quote]
Convert.ToInt32("2010");
gootey 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 gs670gs 的回复:]
nian.SelectedValue取的是一个字符串,你得再转换一次(int)nian.SelectedValue差不多这样就OK了
[/Quote]
嗯,原本我也以为这样可以,实际上不可以的,呵呵
小黑哥gs 2010-05-25
  • 打赏
  • 举报
回复
nian.SelectedValue取的是一个字符串,你得再转换一次(int)nian.SelectedValue差不多这样就OK了
gootey 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lexfu 的回复:]
string转换成int是强转,不能使用int a=(int)string的形式,只能用ConvertTo或者int.Parse()
[/Quote]
关于ConvertTo,怎么用呢?举个例子行么
lexfu 2010-05-25
  • 打赏
  • 举报
回复
string转换成int是强转,不能使用int a=(int)string的形式,只能用ConvertTo或者int.Parse()
gootey 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyazhe 的回复:]
string year = "2002";
int nYear = int.Parse(year);
switch (int.Parse(yue.SelectedValue))
{
case 2:
[/Quote]
嗯,好的。学习了。
深海之蓝 2010-05-25
  • 打赏
  • 举报
回复
case "2":
if ((int)(nian.SelectedValue))%4==0)
string 不能直接强制转换成int
用int.Parse(nian.SelectedValue)
gootey 2010-05-25
  • 打赏
  • 举报
回复
因为我还是想从一个名为nian的DropDownList被选中的值来判断。
所以还是要把nian.SelectedValue转化为年或者int
兔子-顾问 2010-05-25
  • 打赏
  • 举报
回复
string year = "2002";
int nYear = int.Parse(year);
switch (int.Parse(yue.SelectedValue))
{
case 2:
gootey 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyazhe 的回复:]
系统就有这方法:
DateTime.IsLeapYear(year);
[/Quote]

噢,原来。。。
那么为什么我不能把string类型转换成int类型的?
鸟哥们举些例子好么?
herty 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyazhe 的回复:]
系统就有这方法:
DateTime.IsLeapYear(year);
[/Quote]
顶楼上.
兔子-顾问 2010-05-25
  • 打赏
  • 举报
回复
lon123,有空来啦。.(打个招呼)
兔子-顾问 2010-05-25
  • 打赏
  • 举报
回复
系统就有这方法:
DateTime.IsLeapYear(year);
lon123 2010-05-25
  • 打赏
  • 举报
回复
直接 DateTime.IsLeapYear(2010)不就好了。。。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧