class Program { static void Main(string[] args) { Console.WriteLine("请输入日期(格式xxxx-xx-xx):"); string date = Console.ReadLine(); DateTime dt = Convert.ToDateTime(date); string week = dt.DayOfWeek.ToString(); Console.WriteLine("Today is "+week); } }
private void button1_Click(object sender, EventArgs e) { // string date = textBox1.Text + "-" + textBox2.Text + "-" + textBox3.Text; string input_date = dateTimePicker1.Text; // Console.WriteLine(input_date); DateTime dt = Convert.ToDateTime(input_date); int y = dt.Year; int m = dt.Month; // 获取月 int d = dt.Day; // 获取日 string date = m.ToString() + "-" + d.ToString(); DateTime birth = Convert.ToDateTime(date); DateTime today = DateTime.Today.Date; string week = dt.DayOfWeek.ToString(); if (DateTime.Compare(birth, today) > 0) { label5.Text = "您的"+(today.Year-y)+"岁生日还有" + (birth - today).Days + "天,那天是" + week; } if (DateTime.Compare(birth, today) == 0) { label5.Text = "祝你"+(today.Year-y)+"生日快乐!"; } if (DateTime.Compare(birth, today) < 0) { label5.Text = "您的" + (today.Year - y) + "生日已过" + (today - birth).Days + "天,那天是" + week; } }
// 生成随机车牌 public string startNumer(Random r) { char E1 = (char)r.Next(65, 90); char E2 = (char)r.Next(65, 90); int N1 = r.Next(10, 99); string n1 = N1.ToString(); int N2 = r.Next(9); string n2 = N2.ToString(); string number = "" + E1 + n1 + E2 + n2; return number; } // 为每个单选框的text赋值显示车牌信息 public void showNumber() { RadioButton[] radioButtons = new RadioButton[10]; radioButtons[0] = radioButton1; radioButtons[1] = radioButton2; radioButtons[2] = radioButton3; radioButtons[3] = radioButton4; radioButtons[4] = radioButton5; radioButtons[5] = radioButton6; radioButtons[6] = radioButton7; radioButtons[7] = radioButton8; radioButtons[8] = radioButton9; radioButtons[9] = radioButton10; Random r = new Random(); // 随机数种子不能写在循环中,否者会出现高并发的情况 foreach (RadioButton rb in radioButtons) { rb.Text = startNumer(r); rb.Visible = true; } } // 开始摇号 int times = 0; private void button1_Click(object sender, EventArgs e) { if (times < 5) { showNumber(); times++; } else { MessageBox.Show("您已经用完摇号次数!"); } } // 判断选中 string hNumer; private void Radio_CheckedChanged(object sender, EventArgs e) { RadioButton rb = sender as RadioButton; hNumer = rb.Text; /*if (rb.Checked) { MessageBox.Show("您选择的号码为 " + rb.Text); }*/ } private void button2_Click(object sender, EventArgs e) { MessageBox.Show("您已选择号码为 " + hNumer); Application.Exit(); // 关闭应用 }
class Program { static int[] cards = new int[52]; // 存牌数组 static int times; // 生成扑克牌 public static void initCard() { int k = 0; // 生成扑克牌并存到牌盒中 for (int i = 1; i <= 4;i++) { for (int j = 1;j <= 13;j++) { int temp = 100; temp *= i; temp += j; cards[k] = temp; k++; } // 测试代码 // Console.WriteLine(); } // 测试代码 //foreach(int i in cards) //{ // Console.WriteLine(i+" "); //} // 测试结果:生成模块通过 } // 洗牌 public static TimeSpan washCard() { // 控制数字输入 Boolean input = true; while (input) { Console.Write("How many times for card:"); try { times = int.Parse(Console.ReadLine()); } catch (FormatException) { Console.WriteLine("请输入正整数!"); Console.ReadKey(); Console.Clear(); washCard(); } if (times <= 0) { Console.WriteLine("请输入正整数!"); } else { input = false; } } /* 洗牌算法 * 目的:将数组中的下标随机打乱 * 步骤: * 1.生成随机数下标r1; * 2.生成随机数下标r2; * 3.用temp接收r1的值; * 4.r1接收r2的值; * 5.r2接收temp的值; * 完成换值操作 * 注意事项: * 1.两个随机数下标不能相同 * 2.洗牌一次的意思是更换20张牌的值(初步决定,后期视情况更改) */ // Random rd = new Random(); int time_temp = times; TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks); while (time_temp > 0) { //洗一次牌 for (int i = 0; i < 20; i++) { int r1 = rd.Next(52); int r2 = rd.Next(52); while (r1 == r2) { r2 = rd.Next(52); } int temp = cards[r1]; cards[r1] = cards[r2]; cards[r2] = temp; } time_temp--; } TimeSpan ts2 = new TimeSpan(DateTime.Now.Ticks); TimeSpan ts = ts2.Subtract(ts1).Duration(); // 时间差 return ts; } // 发牌 public static void emitCard() { //Console.WriteLine("进入发牌"); int[] player1 = new int[13]; int[] player2 = new int[13]; int[] player3 = new int[13]; int[] player4 = new int[13]; // 开始发牌 int count = 0; for (int j = 0;j < 13;j++) { //Console.WriteLine(i+" "); player1[j] = cards[count++]; player2[j] = cards[count++]; player3[j] = cards[count++]; player4[j] = cards[count++]; } //Console.WriteLine("发牌完成"); // 明牌 Console.WriteLine("玩家1的牌:"); foreach (int i in player1) { string stemp = fiter(i); Console.Write(stemp + " " ); } Console.WriteLine(); Console.WriteLine("玩家2的牌:"); foreach (int i in player2) { string stemp = fiter(i); Console.Write(stemp + " "); } Console.WriteLine(); Console.WriteLine("玩家3的牌:"); foreach (int i in player3) { string stemp = fiter(i); Console.Write(stemp + " "); } Console.WriteLine(); Console.WriteLine("玩家4的牌:"); foreach (int i in player4) { string stemp = fiter(i); Console.Write(stemp + " "); } Console.WriteLine(); } // 过滤器 public static string fiter(int num) { /* 规则: * 判断花色: * 大于100小于200为红桃,ASCII码:003 * 大于200小于300为方块,ASCII码:004 * 大于300小于400为梅花,ASCII码:005 * 大于400为黑桃,ASCII码:006 * * 判断值 * 1为A * 11为J * 12为Q * 13为K * * 注意事项: * 先判断花色再判断值 * 用字符串输出 */ string cardType = ""; if (100 < num && num < 200) { cardType += "♥"; num -= 100; }else if (200 < num && num < 300) { cardType += "♦ "; num -= 200; } else if (300 < num && num < 400) { cardType += "♣"; num -= 300; } else if (400 < num) { cardType += "♠"; num -= 400; } // 判断牌值 if (num == 1) { cardType += "A"; } else if (num == 11) { cardType += "J"; } else if (num == 12) { cardType += "Q"; } else if (num == 13) { cardType += "K"; }else { cardType += num; } // 排版 cardType += " "; if(num != 10) { cardType += " "; } return cardType; } static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; // 能够输出花色的关键 //Console.WriteLine("开始"); initCard(); //Console.WriteLine("初始化牌成功,正洗牌"); TimeSpan ts = washCard(); Console.WriteLine("洗牌完成\n"); emitCard(); Console.WriteLine("\n洗牌"+times+"次用时:"+ts.Milliseconds.ToString()+" 毫秒\n"); } }