Mình vừa đăng ký được tài khoản chính thức ChatGPT tại Việt Nam một cách rất đơn giản bằng gmail và số điện thoại viettel của mình:
Mình vẫn tiếp tục hỏi function chuyển ngày dương lịch sang âm lịch và đay là câu trả lời:
Function Solar2Lunar(solarDate As Date) As Date
' Các thông số cần thiết để chuyển đổi ngày dương lịch sang ngày âm lịch
' (Được tìm thấy trên https://www.informatik.uni-leipzig.de/~d...2Lunar.pdf)
Dim lunarMonth As Integer
Dim lunarDay As Integer
Dim lunarYear As Integer
Dim i As Integer
Dim leap As Long
Dim temp As Long
Dim dd, mm, yy As Long
Dim dayNumber As Long
dd = Day(solarDate)
mm = Month(solarDate)
yy = Year(solarDate)
dayNumber = Int((DateSerial(yy, mm, dd) - DateSerial(1900, 1, 31)).TotalDays)
leap = 0
For i = 1900 To 2199
temp = LunarYearDays(i)
If (dayNumber >= temp) Then
dayNumber = dayNumber - temp
leap = GetLeapMonth(i)
Else
Exit For
End If
Next i
lunarMonth = 1
Do While (dayNumber >= LunarMonthDays(leap, lunarMonth))
dayNumber = dayNumber - LunarMonthDays(leap, lunarMonth)
lunarMonth = lunarMonth + 1
Loop
lunarDay = dayNumber + 1
lunarYear = i
If (leap > 0 And lunarMonth > leap) Then
lunarMonth = lunarMonth - 1
If (lunarMonth = leap) Then
lunarMonth = -leap
End If
End If
Lunar2Solar = DateSerial(lunarYear, lunarMonth, lunarDay)
End Function
' Hàm LunarYearDays trả về tổng số ngày của âm lịch trong một năm cụ thể
Private Function LunarYearDays(lunarYear As Integer) As Long
Dim i As Integer
Dim sum As Long
sum = 348
For i = 0 To 11
If (((LunarYearMonths(lunarYear) >> i) And 1) = 1) Then
sum = sum + 1
End If
Next i
sum = sum + GetLeapMonthDays(lunarYear)
LunarYearDays = sum
End Function
' Hàm LunarMonthDays trả về tổng số ngày của một tháng âm lịch trong một năm cụ thể
Private Function LunarMonthDays(leap As Long, lunarMonth As Integer) As Long
If (((LunarYearMonths(leap) >> (lunarMonth - 1)) And 1) = 1) Then
LunarMonthDays = 30
Else
LunarMonthDays = 29
End If
End Function
' Hàm GetLeapMonth trả về tháng nhuận trong một năm cụ thể (nếu có)
Private Function GetLeapMonth(lunarYear As Integer) As Long
GetLeapMonth = LunarYearMonths(lunarYear) And &HF
End Function
' Hàm GetLeapMonthDays trả về số ngày của tháng nhuận trong một năm cụ thể
Private Function GetLeapMonthDays(lunarYear As Integer) As Long
If (GetLeapMonth(lunarYear) > 0) Then
If ((LunarYearMonths(lunarYear) And &XF000) = &XF000) Then
GetLeapMonthDays = 30
Else
GetLeapMonthDays = 29
End If
Else
GetLeapMonthDays = 0
End If
End Function
' Mảng LunarYearMonths lưu trữ thông tin về tháng âm lịch của một năm cụ thể
' Các giá trị trong mảng có nghĩa như sau:
' 19 bit đầu tiên đại diện cho 12 tháng âm lịch, bắt đầu từ tháng 1 đến tháng 12.
' Nếu giá trị của bit tại một vị trí bằng 0, thì tháng tương ứng có 29 ngày; nếu bằng 1, thì tháng đó có 30 ngày.
' 4 bit cuối cùng có nghĩa là thông tin về tháng nhuận của năm đó. Giá trị của bit thứ 0 bằng 1 nếu năm đó có tháng nhuận, ngược lại bằng 0.
' 3 bit tiếp theo đại diện cho tháng nhuận (1 đến 12), nếu năm không có tháng nhuận thì sử dụng giá trị 0.
Private LunarYearMonths(259) As Long
Private Sub InitLunarYearMonths()
LunarYearMonths(1900) = &H4BD
LunarYearMonths(1901) = &H4AE
LunarYearMonths(1902) = &HA5B
LunarYearMonths(1903) = &H516
LunarYearMonths(1904) = &HAD5
LunarYearMonths(1905) = &HB6A
...
LunarYearMonths(2197) = &H95B
LunarYearMonths(2198) = &H49B
LunarYearMonths(2199) = &H4B5
End Sub
Các bạn có thể đăng ký ChatGPT nhanh chóng bằng cách vào trang: voicegpt.us
Khi nó hiển thị hình ảnh dưới đây thì chọn Sign up
Khi nó hiện bảng dưới đây thì các bạn điền đầy đủ số liệu vào (số liệu giả cũng được kể cả email và số điện thoại). Pass thì phải có chữ hoa, thường, số và ký tự đặc biệt.
Về phần INVITE CODE thì các bạn gõ vào: kZt4uVq, đây là mã số của mình dùng để giới thiệu bạn bè đăng ký ChatGPT (không có mã giới thiệu này nó buột phải đăng ký số điện thoại ngoài Việt Nam, trước đây có thể mua số điện thoại ảo để đăng ký nhưng bây giờ thì không còn được nữa rồi, tôi cũng nhờ đứa em ở Mỹ cho mã giới thiệu mới đăng ký đươc. Tất nhiên sau khi các bạn đăng ký xong thì cũng có mã INVITE CODE để giới thiệu cho người khác)
Sau đó thực hiện nốt những công việc nó yêu cầu là xong.