|
|
|
อยากทราบการเขียน Code VB คำนวนวันที่ของปี(ว่าเป็นวันที่เท่าไหร่ของปี 2012) |
|
|
|
|
|
|
|
ลองเอาไปดูนะคร๊าฟฟฟ เราไม่ถนัด VB แต่เป็น C# 2008 คงพอแปลงได้อยู่นะคร๊าฟฟ
ส่วนนี้ก็เป็น Code ยังไงลองอ่านก่อนนะ
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CalDayInYear
{
public partial class Form1 : Form
{
string[] month = new string[] { "January", "Febuary", "Mar", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; // array string ที่เก็บเดือนเอาไว้
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) // form โหลด เริ่มโปรแกรมปุ๊บก็สั่ง Add รายชื่อเดือนลงใน Combobox
{
foreach (string item in month)
{
this.comboBox1.Items.Add(item);
}
this.comboBox1.SelectedIndex = 0;
}
private void button1_Click(object sender, EventArgs e)
{
int NumberOfMonth = this.comboBox1.SelectedIndex + 1; //เมื่อเลือก Combobox แล้ว จะได้ index ออกมาว่าเลือกตัวไหนซึ่งมันเริ่มจาก 0 ดังนั้นจะให้เป็น เดือนที่ 1 2 3 ก็ต้องเอา index มา + 1 ก่อน
int LimitDayInMonth = DateTime.DaysInMonth(2012, NumberOfMonth); //DateTime มี method ที่สามารถบอกได้ว่าเดือนไหนปีไหน มีกี่วันซึ่งสะดวกมาก เราก็แค่เอามาทำเงื่อนไข ถ้าผู้ใช้ใส่วันเกิดก็ alert ออกมา
if (this.textBox1.Text != "") // เช็คก่อนว่าผู้ใช้ใส่วันที่หรือเปล่า
{
int Day = Convert.ToInt32(this.textBox1.Text); ทำการแปลง วันที่ ที่เป็น string ให้เป็น int
if (Day <= LimitDayInMonth) // เช็คว่าวันที่ที่ใส่มาเกินความเป็นจริงหรือเปล่า
{
DateTime DayMonthYear = new DateTime(2012, NumberOfMonth, Day); // ทำการสร้างตัวแปร DateTime ขึ้น โดยใส่ ปี เดือน วัน
int NumberOfDayInYear = DayMonthYear.DayOfYear; // อีกเช่นกันที่ DateTime มี Method ที่สามารถคำนวณได้ว่าวันที่ไหนของเดือนไหน เป็น ลำดับที่เท่าไหร่แล้วของปี
string DayInYear = "The " + NumberOfDayInYear.ToString(); //อันนี้ยากหน่อยเห็นอยากให้เติม st nd rd
int temp = NumberOfDayInYear % 10; //เริ่มจาก mod ด้วย 10 เพื่อหาเลขหลักหน่วย
switch (temp)
{
case 1: DayInYear += "st."; break; //หากเลขหลักหน่วยเป็น 1 เติม st
case 2: DayInYear += "nd."; break;//หากเลขหลักหน่วยเป็น 2 เติม nd
case 3: DayInYear += "rd."; break;//หากเลขหลักหน่วยเป็น 3 เติม rd
default: DayInYear += "th."; break;//หากเลขหลักหน่วยเป็น อื่นๆๆ (0,4,5,6,7,8,9) เติม th
}
this.label3.Text = this.textBox1.Text + " " + month[this.comboBox1.SelectedIndex] + " : " + DayInYear;// เอาไปแสดงใน Label3
}
else
{
MessageBox.Show("ไม่สามารถเลือกวันที่นี้ได้");
}
}
else
{
MessageBox.Show("กรุณาใส่วันที่ด้วยครับ");
}
}
}
}
ไม่รู้จะช่วยได้มากหรือน้อย ลองเอาไปดูนะคร๊าฟ
|
|
|
|
|
Date :
2012-09-14 14:03:32 |
By :
chamachu |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จับ datetime มาลบกันก็จบแล้วครับ
แล้วเรียกออกมาเป็นวันด้วย method Days เอา
|
|
|
|
|
Date :
2012-09-14 15:07:08 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|