Python: My Fake Data Generator P-4
Learning : Python: Functions, Procedures and documentation
Subject: About fake data P-4: (Fake Dates)
The fourth function of our Fake Data Generator will be the date function, from it’s name this one will generate a FAKE Date in yyyy/mm/dd format. The function will have one argument (go_back) for range, the max-limit is current date (today) and mini-limit will be (1/1/1900), if the user did’t pass any thing for (go_back) then the range is (from current to 1/1/1900) and if the user pass (X) then the range will be ((current date) to current – X_YEARS). Also in dates we need to take care of Leap Years, In leap year, the month of February has 29 days instead of 28. To solve this in our function we can use two ways, first one (the easy way) we know that we are generating a random numbers for months and days; so we can say if the month is February, then days can’t be more than 28. But if we want this thing to be more realistic we need to add more conditions such as :
1. The year can be evenly divided by 4.
2. If the year can be evenly divided by 100, it is NOT a leap year, unless the year is also evenly divisible by 400. Then it is a leap year (February has 29 days).
''' 10/12/2019 By: Ali Radwani To get Fake Date. ''' import random, datetime def fdate(go_back = 0): """ ### Fake Date Generator V.01 ### Date: 10.12.2019, By: Ali Radwani This function will generate and return a fake date in string format. The function accept one int argument go_pback. If go_past = X, and current year - X is less than 1900 then the range of FAKE time will be (current year to current year - X). If NO argument passed to the function, then default limit set to 1900. Default limits: Date are from current (today) and back to 1900. Import: random, datetime Argument: int : go_back to set the upper limit of the date Return: str: dd/mm/yyyy """ # Get current year. c_year = datetime.datetime.today().year # set the maximum year limit. if go_back > 0 : max_y_limit = c_year - go_back else : max_y_limit = 1900 if max_y_limit < 1900 : max_y_limit = 1900 yy = random.randint(max_y_limit, c_year) mm = random.randint(1,12) if mm in [1,3,5,7,8,10,12] : dd = random.randint(1,31) elif mm in [4,6,9,11]: dd = random.randint(4,30) else : # IF the month is February (2) if (yy % 4 == 0 ) or ((yy % 100 == 0)and (yy % 400 == 0)): # It is a leap year February has 29 days. dd = random.randint(1,29) else : # it is NOT a leap year February has 28 days. dd = random.randint(1,28) d = (str(dd) +'/'+ str(mm)+'/' + str(yy)) return (str(dd) +'/'+ str(mm)+'/' + str(yy)) # To check the output. for x in range (30): print(fdate())
<
Here is a screenshot of the code, also available on the Download Page . . .
![]() |
:: Fake Function List ::
Function Name | Description |
Color | To return a random color code in RGB or Hex. |
Date | To return a random date. |
Mobile | To return a mobile number. |
Country | To return a random country name. |
City | To return a random City name. |
ID | To return X random dig as ID. |
Time | To return random time. |
Car’s Brand | |
file_name | |
Done |
By: Ali Radwani
-
December 22, 2019 at 8:34 amPython: My Fake Data Generator P-5 | Ali's Photography Space...
-
December 26, 2019 at 8:31 amPython: My Fake Data Generator P-6 | Ali's Photography Space...
-
January 19, 2020 at 6:43 amPython: My Fake Data Generator P-7 | Ali's Photography Space...