需两种!
一种是判断完整星期的第几个星期几!
另一种是判断是当前的第几个星期几,不管完不完整的星期。
PS:共100分每个问题50分!

解决方案 »

  1.   

    BOOL SetFileToCurrentTime(HANDLE hFile)
    {
        FILETIME ft;
        SYSTEMTIME st;
        BOOL f;    GetSystemTime(&st);              // gets current time
        SystemTimeToFileTime(&st, &ft);  // converts to file time format
        。    return f;
    }SYSTEMTIME
    The SYSTEMTIME structure represents a date and time using individual members for the month, day, year, weekday, hour, minute, second, and millisecond. typedef struct _SYSTEMTIME { 
        WORD wYear; 
        WORD wMonth; 
        WORD wDayOfWeek; 
        WORD wDay; 
        WORD wHour; 
        WORD wMinute; 
        WORD wSecond; 
        WORD wMilliseconds; 
    } SYSTEMTIME, *PSYSTEMTIME; 
    Members
    wYear 
    Specifies the current year. The year must be greater than 1601. 
    Windows XP: The year cannot be greater than 30827. wMonth 
    Specifies the current month; January = 1, February = 2, and so on. 
    wDayOfWeek 
    Specifies the current day of the week; Sunday = 0, Monday = 1, and so on. 
    wDay 
    Specifies the current day of the month. 
    wHour 
    Specifies the current hour. 
    wMinute 
    Specifies the current minute. 
    wSecond 
    Specifies the current second. 
    wMilliseconds 
    Specifies the current millisecond.
      

  2.   


    具体思路如下:
    1、先得出当前是星期几,然后做判断,若当前为周一(假设以周一为第一天),前面天数为7的倍数n,当前为n+1个完整的星期的星期一,否则为n个完整星期的星期一
    2、道理相似,只是判断要多一些
    代码略
      

  3.   

    Dim FirstDate As Date
        Dim MyDate As Date
        MyDate = Now
        FirstDate = Format(MyDate, "yyyy-mm-03")
        '不完整的星期
        MsgBox DateDiff("ww", FirstDate, MyDate, vbUseSystemDayOfWeek, vbFirstFullWeek) + 1
        '完整的星期
        MsgBox DateDiff("ww", FirstDate, MyDate, vbUseSystemDayOfWeek, vbFirstFullWeek)
      

  4.   

    不好意思,这句
    FirstDate = Format(MyDate, "yyyy-mm-01")
      

  5.   

    另一种是判断是当前的第几个星期几,不管完不完整的星期。
    ------------------------------------------------------
    Print DateDiff("d", CDate(Format(Date, "yyyy-mm")), Date) \ 7 + 1一种是判断完整星期的第几个星期几!
    ----------------------------------
    先请问楼主,#2004-10-1#在你这个问题中的答案是什么?
      

  6.   

    忘了1号为星期日的情况,补上Dim FirstDate As Date
        Dim MyDate As Date
        MyDate = Now
        FirstDate = Format(MyDate, "yyyy-mm-01")
        n = Weekday(FirstDate)
        '不完整的星期
        If n = 1 Then
            MsgBox DateDiff("ww", FirstDate, MyDate, vbUseSystemDayOfWeek, vbFirstFullWeek) + 1
        Else
            MsgBox DateDiff("ww", FirstDate, MyDate, vbUseSystemDayOfWeek, vbFirstFullWeek)
        End If
        '完整的星期
        MsgBox DateDiff("ww", FirstDate, MyDate, vbUseSystemDayOfWeek, vbFirstFullWeek)
      

  7.   

    某一天的下 (上) 一个星期几是那一天?参数 : 您相信吗?这个模组的写法比用任何其他的方法快几十倍!参数如下:
    1:以那一天为基准日?
    2:(Optional) 要找的是星期几?若不指定,预设值为星期六
    3:(Optional) 要往前 (过去) 找或往后 (未来) 找?
    若不指定,预设值为往后 (未来) 找
    程序码
    Public Function SpecificWeekday(ByVal D As Date, Optional ByVal WhatDay As VbDayOfWeek = vbSaturday, Optional GetNext As Boolean = True) As Date
    SpecificWeekday = (((D - WhatDay + GetNext) \ 7) - GetNext) * 7 + WhatDay
    End Function
    或许您想知道程序为什么这样写?您知道吗?在 VB 中,其所有日期函数的基准日 (第0天) 是 1899年12月30日 (星期六),第一天就是 1899年12月31日 (星期日),所以 VB 的 WeekDay 函数算法其实就是 (Date - 1) Mod 7 + 1。返回值
    日期实例 :
    我想知道以下日子各是那一天?
    上个星期一:SpecificWeekday(Now, vbMonday, False)
    下个星期六:SpecificWeekday(Now)
    2000年9月9日的下一个星期五:SpecificWeekday("09/09/2000", vbFriday)
      

  8.   

    总是写反了,这个ok.
    Dim FirstDate As Date
        Dim MyDate As Date
        MyDate = "2004-10-1"
        FirstDate = Format(MyDate, "yyyy-mm-01")
        n = Weekday(FirstDate)
        '不完整的星期
        If n <> 1 Then
            MsgBox DateDiff("ww", FirstDate, MyDate, vbUseSystemDayOfWeek, vbFirstFullWeek) + 1
        Else
            MsgBox DateDiff("ww", FirstDate, MyDate, vbUseSystemDayOfWeek, vbFirstFullWeek)
        End If
        '完整的星期
        MsgBox DateDiff("ww", FirstDate, MyDate, vbUseSystemDayOfWeek, vbFirstFullWeek)
      

  9.   

    第一个需求不明:比如2004-10-1,这一天所在的周本身就不是完整周,返回0还是1??第二条如下:
    Private Sub Command1_Click()
        MsgBox GetPartWeekNum(CDate("2004-10-29"))
    End SubPublic Function GetPartWeekNum(ByVal dtCur As Date) As Integer
        Dim dtF As Date, intBw As Integer
        
        dtF = CDate(Year(dtCur) & "-" & Month(dtCur) & "-1")
        intBw = DateDiff("d", dtF, dtCur)
        
        GetPartWeekNum = intBw \ 7 + 1
    End Function