比如在文本框内输入2008-12-24 怎样判断12月24号属于2008年的第几周 并且是星期几呢?

解决方案 »

  1.   

    static void Main(string[] args)
            {         //如何计算当前日期是本月的第几周?            //得到当前为这个月的第几天
                int day = Convert.ToInt32(DateTime.Now.Day);
                Console.WriteLine("当前是这个月的第" + day + "天");
                //得到是当前年的哪一天
                int yearday = Convert.ToInt32(DateTime.Now.DayOfYear);
                Console.WriteLine(yearday);
                //得到当前年
                int year = Convert.ToInt32(DateTime.Now.Year);
                Console.WriteLine(year);
                //得到月份
                int month = Convert.ToInt32(DateTime.Now.Month);
                int totalDays = 0;
                bool inRn;//是否为闰年
                if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0)
                {
                    inRn = true;
                }
                else
                {
                    inRn = false;//平年
                }
                for (int i = 1900; i < year; i++)
                {
                    /* 判断闰年或平年,并进行天数累加 */
                    if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
                    { // 判断是否为闰年
                        totalDays = totalDays + 366; // 闰年366天
                    }
                    else
                    {
                        totalDays = totalDays + 365; // 平年365天
                    }
                }
                Console.WriteLine(totalDays);
                int days = 0;
                int beforeDays = 0;
                for (int i = 1; i <= month; i++)
                {
                    switch (i)
                    {
                        case 1:
                        case 3:
                        case 5:
                        case 7:
                        case 8:
                        case 10:
                        case 12:
                            days = 31;
                            break;
                        case 2:
                            if (inRn)
                            {
                                days = 29;
                            }
                            else
                            {
                                days = 28;
                            }
                            break;
                        default:
                            days = 30;
                            break;
                    }
                    if (i < month)
                    {
                        beforeDays = beforeDays + days;
                    }            }
                Console.WriteLine("此月份之前的天数" + beforeDays);
                totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数
                int firstDayOfMonth; // 存储当月第一天是星期几:星期日为0
                int temp = 1 + totalDays % 7; // 从1900年1月1日推算
                if (temp == 7)
                { // 求当月第一天
                    firstDayOfMonth = 0; // 周日
                }
                else
                {
                    firstDayOfMonth = temp;
                }
                Console.WriteLine("该月第一天是星期" + firstDayOfMonth);        }
    //还真没想到这么麻烦
      

  2.   


    public static void main(String args[]) throws Exception{
    //2008-12-24 
        Calendar c = new GregorianCalendar(2008, 12-1, 24);
        System.out.println(c.getTime());
        //属于2008年的第几周
        int weekNum = c.get(Calendar.WEEK_OF_YEAR);
        System.out.println(weekNum);
        //星期几
        int week = c.get(Calendar.DAY_OF_WEEK);
        System.out.println(week);
    }
      

  3.   

    补充一下:
    int week = c.get(Calendar.DAY_OF_WEEK);
    week返回值从1-7分别对应的是星期日,一,二,...,六
      

  4.   


    package practice;import java.util.Calendar;
    import java.util.Date;public class TryDate{
    @SuppressWarnings("deprecation")
    public static void main(String[]args){
    Calendar c=Calendar.getInstance();
    c.setTime(new Date(2008-1900,12-1,24 ));

    System.out.println(c.get(Calendar.YEAR));
    System.out.println(c.get(Calendar.WEEK_OF_YEAR));
    System.out.print(c.get(Calendar.DAY_OF_WEEK));
    }

    }
    试试这个:
      

  5.   

    有没有人不用calendar,date等和日期、时间有关的类库做出这个题的?
      

  6.   

    谢谢你!fengzhou0920  我去试试
      

  7.   

    也得谢谢人家一楼啊!这就是所说的土方法,而不是使用GregorianCalendar工具类来实现