burmesedate.astro

  1# /* cSpell:disable */
  2"""
  3Checking Astrological days
  4
  5More details @ http://cool-emerald.blogspot.sg/2013/12/myanmar-astrological-calendar-days.html
  6
  7"""
  8
  9import math
 10import sys
 11from .burme import calculate_month_length, julian_to_burmese
 12
 13
 14def calculate_sabbath(md: int, mm: int, myt: int) -> int:
 15    """
 16    Get sabbath day and sabbath eve from day of the month, month, and year type.
 17
 18    Args:
 19        md (int) : day in month [1-30]
 20        mm (int) : month
 21        myt (int): year type
 22
 23    Return:
 24        int : [0 = false, 1 = sabbath, 2 = sabbath_eve]
 25
 26    """
 27    mml = calculate_month_length(mm, myt)
 28    s = 0
 29    if md in [8, 15, 23, mml]:
 30        s = 1
 31    elif md in [7, 14, 22, mml - 1]:
 32        s = 2
 33    return s
 34
 35
 36def calculate_yatyaza(mm: int, wd: int) -> int:  # first waso is considered waso
 37    """
 38    Get yatyaza from month, and weekday
 39
 40    Args:
 41        mm (int) : month
 42        wd (int) : weekday [0=sat, 1=sun, ..., 6=fri]
 43
 44    Return:
 45        (int): 0 = false , 1 = yatyaza
 46    """
 47    m1 = mm % 4
 48    yatyaza = 0
 49    wd1 = (m1 // 2) + 4
 50    wd2 = (1 - (m1 // 2) + (m1 % 2)) * (1 + 2 * (m1 % 2))
 51    if wd in [wd1, wd2]:
 52        yatyaza = 1
 53    return yatyaza
 54
 55
 56def calculate_pyathada(mm: int, wd: int) -> int:  # first waso is considered waso
 57    """
 58    Get pyathada from month, and weekday
 59
 60    Args:
 61        mm (int) : month
 62        wd (int) : weekday [0=sat, 1=sun, ..., 6=fri]
 63
 64    Return:
 65        (int): 0 = false , 1=pyathada, 2=afternoon pyathada
 66
 67    """
 68    m1 = mm % 4
 69    pyathada = 0
 70    wda = [1, 3, 3, 0, 2, 1, 2]
 71    if m1 == 0 and wd == 4:
 72        pyathada = 2
 73    if m1 == wda[wd]:
 74        pyathada = 1
 75    return pyathada
 76
 77
 78def calculate_nagahle(mm: int) -> int:
 79    """
 80    Nagahle
 81
 82    Args:
 83        mm (int) : month
 84
 85    Return:
 86        (int) : 0 = west, 1 = north, 2 = east, 3 = south
 87    """
 88    if mm <= 0:
 89        mm = 4
 90    return math.floor((mm % 12) / 3)
 91
 92
 93def calculate_mahabote(my: int, wd: int) -> int:
 94    """
 95    Calculate the mahabote value for a given year and weekday.
 96
 97    Args:
 98        my (int): The year.
 99        wd (int): The weekday (0 = Saturday, 1 = Sunday, ..., 6 = Friday).
100
101    Returns:
102        (int): The mahabote -> 0 = Binga, 1 = Atun, 2 = Yaza, 
103        3 = Adipati, 4 = Marana, 5 = Thike, 6 = Puti.
104    """
105    return (my - wd) % 7
106
107
108def calculate_nakhat(my: int) -> int:
109    """
110    Calculate Nakhat
111
112    Args:
113        my (int): The year.
114
115    Return:
116        (int) : 0 = Ogre, 1 = Elf, 2 = Human
117    """
118    return my % 3
119
120
121# ===========================================================================================
122
123
124def calculate_thamanyo(mm: int, wd: int) -> int:
125    """
126    Calculates the value of 'thamanyo' based on the inputs 'mm' and 'wd'.
127
128    Args:
129        mm (int): The month.
130        wd (int): The weekday.
131
132    Returns:
133        int: The calculated value of 'thamanyo'.1 = thamanyo, 0 = false
134    """
135    mmt = mm // 13
136    mm = (mm % 13) + mmt
137    if mm <= 0:
138        mm = 4
139    thamanyo = 0
140    m1 = mm - 1 - mm // 9
141    wd1 = (m1 * 2 - m1 // 8) % 7
142    wd2 = (wd + 7 - wd1) % 7
143    if wd2 <= 1:
144        thamanyo = 1
145    return thamanyo
146
147
148def calculate_amyeittasote(md: int, wd: int) -> int:
149    """
150    Calculates the value of amyeittasote based on the inputs md and wd.
151
152    Args:
153        md (int): The month day.
154        wd (int): The weekday.
155
156    Returns:
157        int: The calculated value of amyeittasote.
158    """
159    mf = md % 16  # Calculate the fortnight day [0-15]
160    amyeittasote = 0  # Initialize amyeittasote
161    wda = [5, 8, 3, 7, 2, 4, 1]
162
163    if mf == wda[wd]:
164        amyeittasote = 1
165
166    return amyeittasote
167
168
169def calculate_warameittugyi(md: int, wd: int) -> int:
170    """
171    Calculates the value of warameittugyi based on the inputs md and wd.
172
173    Args:
174        md (int): The month day.
175        wd (int): The weekday.
176
177    Returns:
178        int: The calculated value of warameittugyi
179    """
180    mf = md % 16  # Calculate the fortnight day [0-15]
181    warameittugyi = 0  # Initialize warameittugyi
182    wda = [7, 1, 4, 8, 9, 6, 3]
183
184    if mf == wda[wd]:
185        warameittugyi = 1
186
187    return warameittugyi
188
189
190def calculate_warameittunge(md: int, wd: int) -> int:
191    """
192    Calculates the value of warameittunge based on the inputs md and wd.
193
194    Args:
195        md (int): The month day.
196        wd (int): The weekday.
197
198    Returns:
199        int: The calculated value of warameittunge
200    """
201    mf = md % 16  # Calculate the fortnight day [0-15]
202    warameittunge = 0  # Initialize warameittunge
203    wn = (wd + 6) % 7
204
205    if 12 - mf == wn:
206        warameittunge = 1
207
208    return warameittunge
209
210
211def calculate_yatpote(md: int, wd: int) -> int:
212    """
213    Calculates the value of yatpote based on the inputs md and wd.
214
215    Args:
216        md (int): The month day.
217        wd (int): The weekday.
218
219    Returns:
220        int: The calculated value of yatpote
221    """
222    mf = md % 16  # Calculate the fortnight day [0-15]
223    yatpote = 0  # Initialize yatpote
224    wda = [8, 1, 4, 6, 9, 8, 7]
225
226    if mf == wda[wd]:
227        yatpote = 1
228
229    return yatpote
230
231
232def calculate_thamaphyu(md: int, wd: int) -> int:
233    """
234    Calculates the value of thamaphyu based on the inputs md and wd.
235
236    Args:
237        md (int): The month day.
238        wd (int): The weekday.
239
240    Returns:
241        int: The calculated value of thamaphyu
242    """
243    mf = md % 16  # Calculate the fortnight day [0-15]
244    thamaphyu = 0  # Initialize thamaphyu
245    wda = [1, 2, 6, 6, 5, 6, 7]
246    if mf == wda[wd]:
247        thamaphyu = 1
248    wdb = [0, 1, 0, 0, 0, 3, 3]
249    if mf == wdb[wd]:
250        thamaphyu = 1
251    if mf == 4 and wd == 5:
252        thamaphyu = 1
253    return thamaphyu
254
255
256def calculate_nagapor(md: int, wd: int) -> int:
257    """
258    Calculates the value of nagapor based on the inputs md and wd.
259
260    Args:
261        md (int): The month day.
262        wd (int): The weekday.
263
264    Returns:
265        int: The calculated value of nagapor.
266    """
267    nagapor = 0
268    wda = [26, 21, 2, 10, 18, 2, 21]
269    wdb = [17, 19, 1, 0, 9, 0, 0]
270
271    if md in [wda[wd], wdb[wd]]:
272        nagapor = 1
273    elif (md == 2 and wd == 1) or (md in [12, 4, 18] and wd == 2):
274        nagapor = 1
275
276    return nagapor
277
278
279def calculate_yatyotema(mm: int, md: int) -> int:
280    """
281    Calculates the value of yatyotema based on the inputs mm and md.
282
283    Args:
284        mm (int): The month.
285        md (int): The month day.
286
287    Returns:
288        int: The calculated value of yatyotema.
289    """
290    mmt = mm // 13
291    mm = (mm % 13) + mmt  # to 1-12 with month type
292    if mm <= 0:
293        mm = 4  # first waso is considered waso
294    mf = md - 15 * (md // 16)  # get fortnight day [0-15]
295    yatyotema = 0
296    m1 = mm if mm % 2 else (mm + 9) % 12
297    m1 = ((m1 + 4) % 12) + 1
298    if mf == m1:
299        yatyotema = 1
300    return yatyotema
301
302
303def calculate_mahayatkyan(mm: int, md: int) -> int:
304    """
305    Calculates the value of `mahayatkyan` based on the inputs `mm` and `md`.
306
307    Args:
308        mm (int): The month.
309        md (int): The month day.
310
311    Returns:
312        int: The calculated value of `mahayatkyan`.
313    """
314    if mm <= 0:
315        mm = 4  # first waso is considered waso
316    mf = md - 15 * math.floor(md / 16)  # get fortnight day [0-15]
317    mahayatkyan = 0
318    m1 = ((math.floor((mm % 12) / 2) + 4) % 6) + 1
319    if mf == m1:
320        mahayatkyan = 1
321    return mahayatkyan
322
323
324def calculate_shanyat(mm: int, md: int) -> int:
325    """
326    Calculates the value of 'shanyat' based on the inputs 'mm' and 'md'.
327
328    Args:
329        mm (int): The month.
330        md (int): The month day.
331
332    Returns:
333        int: The calculated value of 'shanyat'.
334    """
335    mmt = mm // 13
336    mm = (mm % 13) + mmt  # to 1-12 with month type
337    if mm <= 0:
338        mm = 4  # first waso is considered waso
339    mf = md - 15 * (md // 16)  # get fortnight day [0-15]
340    shanyat = 0
341    sya = [8, 8, 2, 2, 9, 3, 3, 5, 1, 4, 7, 4]
342    if mf == sya[mm - 1]:
343        shanyat = 1
344    return shanyat
345
346
347def calculate_astro_days(jd: float) -> list:
348    """
349    Calculates the astrological days based on a given Julian Day Number (jd).
350
351    Args:
352        jd (float): The Julian Day Number for which the astrological days are to be calculated.
353
354    Returns:
355        list: A list of strings representing the calculated 
356        astrological days for the given Julian Day Number.
357    """
358    jdn = round(jd)
359    hs = []
360    yo = julian_to_burmese(jdn)
361    mm = yo["mm"]
362    md = yo["md"]
363    wd = (jdn + 2) % 7
364
365    if calculate_thamanyo(mm, wd):
366        hs.append("Thamanyo")
367    if calculate_amyeittasote(md, wd):
368        hs.append("Amyeittasote")
369    if calculate_warameittugyi(md, wd):
370        hs.append("Warameittugyi")
371    if calculate_warameittunge(md, wd):
372        hs.append("Warameittunge")
373    if calculate_yatpote(md, wd):
374        hs.append("Yatpote")
375    if calculate_thamaphyu(md, wd):
376        hs.append("Thamaphyu")
377    if calculate_nagapor(md, wd):
378        hs.append("Nagapor")
379    if calculate_yatyotema(mm, md):
380        hs.append("Yatyotema")
381    if calculate_mahayatkyan(mm, md):
382        hs.append("Mahayatkyan")
383    if calculate_shanyat(mm, md):
384        hs.append("Shanyat")
385
386    return hs
387
388
389# ========================================================
def calculate_sabbath(md: int, mm: int, myt: int) -> int:
15def calculate_sabbath(md: int, mm: int, myt: int) -> int:
16    """
17    Get sabbath day and sabbath eve from day of the month, month, and year type.
18
19    Args:
20        md (int) : day in month [1-30]
21        mm (int) : month
22        myt (int): year type
23
24    Return:
25        int : [0 = false, 1 = sabbath, 2 = sabbath_eve]
26
27    """
28    mml = calculate_month_length(mm, myt)
29    s = 0
30    if md in [8, 15, 23, mml]:
31        s = 1
32    elif md in [7, 14, 22, mml - 1]:
33        s = 2
34    return s

Get sabbath day and sabbath eve from day of the month, month, and year type.

Args: md (int) : day in month [1-30] mm (int) : month myt (int): year type

Return: int : [0 = false, 1 = sabbath, 2 = sabbath_eve]

def calculate_yatyaza(mm: int, wd: int) -> int:
37def calculate_yatyaza(mm: int, wd: int) -> int:  # first waso is considered waso
38    """
39    Get yatyaza from month, and weekday
40
41    Args:
42        mm (int) : month
43        wd (int) : weekday [0=sat, 1=sun, ..., 6=fri]
44
45    Return:
46        (int): 0 = false , 1 = yatyaza
47    """
48    m1 = mm % 4
49    yatyaza = 0
50    wd1 = (m1 // 2) + 4
51    wd2 = (1 - (m1 // 2) + (m1 % 2)) * (1 + 2 * (m1 % 2))
52    if wd in [wd1, wd2]:
53        yatyaza = 1
54    return yatyaza

Get yatyaza from month, and weekday

Args: mm (int) : month wd (int) : weekday [0=sat, 1=sun, ..., 6=fri]

Return: (int): 0 = false , 1 = yatyaza

def calculate_pyathada(mm: int, wd: int) -> int:
57def calculate_pyathada(mm: int, wd: int) -> int:  # first waso is considered waso
58    """
59    Get pyathada from month, and weekday
60
61    Args:
62        mm (int) : month
63        wd (int) : weekday [0=sat, 1=sun, ..., 6=fri]
64
65    Return:
66        (int): 0 = false , 1=pyathada, 2=afternoon pyathada
67
68    """
69    m1 = mm % 4
70    pyathada = 0
71    wda = [1, 3, 3, 0, 2, 1, 2]
72    if m1 == 0 and wd == 4:
73        pyathada = 2
74    if m1 == wda[wd]:
75        pyathada = 1
76    return pyathada

Get pyathada from month, and weekday

Args: mm (int) : month wd (int) : weekday [0=sat, 1=sun, ..., 6=fri]

Return: (int): 0 = false , 1=pyathada, 2=afternoon pyathada

def calculate_nagahle(mm: int) -> int:
79def calculate_nagahle(mm: int) -> int:
80    """
81    Nagahle
82
83    Args:
84        mm (int) : month
85
86    Return:
87        (int) : 0 = west, 1 = north, 2 = east, 3 = south
88    """
89    if mm <= 0:
90        mm = 4
91    return math.floor((mm % 12) / 3)

Nagahle

Args: mm (int) : month

Return: (int) : 0 = west, 1 = north, 2 = east, 3 = south

def calculate_mahabote(my: int, wd: int) -> int:
 94def calculate_mahabote(my: int, wd: int) -> int:
 95    """
 96    Calculate the mahabote value for a given year and weekday.
 97
 98    Args:
 99        my (int): The year.
100        wd (int): The weekday (0 = Saturday, 1 = Sunday, ..., 6 = Friday).
101
102    Returns:
103        (int): The mahabote -> 0 = Binga, 1 = Atun, 2 = Yaza, 
104        3 = Adipati, 4 = Marana, 5 = Thike, 6 = Puti.
105    """
106    return (my - wd) % 7

Calculate the mahabote value for a given year and weekday.

Args: my (int): The year. wd (int): The weekday (0 = Saturday, 1 = Sunday, ..., 6 = Friday).

Returns: (int): The mahabote -> 0 = Binga, 1 = Atun, 2 = Yaza, 3 = Adipati, 4 = Marana, 5 = Thike, 6 = Puti.

def calculate_nakhat(my: int) -> int:
109def calculate_nakhat(my: int) -> int:
110    """
111    Calculate Nakhat
112
113    Args:
114        my (int): The year.
115
116    Return:
117        (int) : 0 = Ogre, 1 = Elf, 2 = Human
118    """
119    return my % 3

Calculate Nakhat

Args: my (int): The year.

Return: (int) : 0 = Ogre, 1 = Elf, 2 = Human

def calculate_thamanyo(mm: int, wd: int) -> int:
125def calculate_thamanyo(mm: int, wd: int) -> int:
126    """
127    Calculates the value of 'thamanyo' based on the inputs 'mm' and 'wd'.
128
129    Args:
130        mm (int): The month.
131        wd (int): The weekday.
132
133    Returns:
134        int: The calculated value of 'thamanyo'.1 = thamanyo, 0 = false
135    """
136    mmt = mm // 13
137    mm = (mm % 13) + mmt
138    if mm <= 0:
139        mm = 4
140    thamanyo = 0
141    m1 = mm - 1 - mm // 9
142    wd1 = (m1 * 2 - m1 // 8) % 7
143    wd2 = (wd + 7 - wd1) % 7
144    if wd2 <= 1:
145        thamanyo = 1
146    return thamanyo

Calculates the value of 'thamanyo' based on the inputs 'mm' and 'wd'.

Args: mm (int): The month. wd (int): The weekday.

Returns: int: The calculated value of 'thamanyo'.1 = thamanyo, 0 = false

def calculate_amyeittasote(md: int, wd: int) -> int:
149def calculate_amyeittasote(md: int, wd: int) -> int:
150    """
151    Calculates the value of amyeittasote based on the inputs md and wd.
152
153    Args:
154        md (int): The month day.
155        wd (int): The weekday.
156
157    Returns:
158        int: The calculated value of amyeittasote.
159    """
160    mf = md % 16  # Calculate the fortnight day [0-15]
161    amyeittasote = 0  # Initialize amyeittasote
162    wda = [5, 8, 3, 7, 2, 4, 1]
163
164    if mf == wda[wd]:
165        amyeittasote = 1
166
167    return amyeittasote

Calculates the value of amyeittasote based on the inputs md and wd.

Args: md (int): The month day. wd (int): The weekday.

Returns: int: The calculated value of amyeittasote.

def calculate_warameittugyi(md: int, wd: int) -> int:
170def calculate_warameittugyi(md: int, wd: int) -> int:
171    """
172    Calculates the value of warameittugyi based on the inputs md and wd.
173
174    Args:
175        md (int): The month day.
176        wd (int): The weekday.
177
178    Returns:
179        int: The calculated value of warameittugyi
180    """
181    mf = md % 16  # Calculate the fortnight day [0-15]
182    warameittugyi = 0  # Initialize warameittugyi
183    wda = [7, 1, 4, 8, 9, 6, 3]
184
185    if mf == wda[wd]:
186        warameittugyi = 1
187
188    return warameittugyi

Calculates the value of warameittugyi based on the inputs md and wd.

Args: md (int): The month day. wd (int): The weekday.

Returns: int: The calculated value of warameittugyi

def calculate_warameittunge(md: int, wd: int) -> int:
191def calculate_warameittunge(md: int, wd: int) -> int:
192    """
193    Calculates the value of warameittunge based on the inputs md and wd.
194
195    Args:
196        md (int): The month day.
197        wd (int): The weekday.
198
199    Returns:
200        int: The calculated value of warameittunge
201    """
202    mf = md % 16  # Calculate the fortnight day [0-15]
203    warameittunge = 0  # Initialize warameittunge
204    wn = (wd + 6) % 7
205
206    if 12 - mf == wn:
207        warameittunge = 1
208
209    return warameittunge

Calculates the value of warameittunge based on the inputs md and wd.

Args: md (int): The month day. wd (int): The weekday.

Returns: int: The calculated value of warameittunge

def calculate_yatpote(md: int, wd: int) -> int:
212def calculate_yatpote(md: int, wd: int) -> int:
213    """
214    Calculates the value of yatpote based on the inputs md and wd.
215
216    Args:
217        md (int): The month day.
218        wd (int): The weekday.
219
220    Returns:
221        int: The calculated value of yatpote
222    """
223    mf = md % 16  # Calculate the fortnight day [0-15]
224    yatpote = 0  # Initialize yatpote
225    wda = [8, 1, 4, 6, 9, 8, 7]
226
227    if mf == wda[wd]:
228        yatpote = 1
229
230    return yatpote

Calculates the value of yatpote based on the inputs md and wd.

Args: md (int): The month day. wd (int): The weekday.

Returns: int: The calculated value of yatpote

def calculate_thamaphyu(md: int, wd: int) -> int:
233def calculate_thamaphyu(md: int, wd: int) -> int:
234    """
235    Calculates the value of thamaphyu based on the inputs md and wd.
236
237    Args:
238        md (int): The month day.
239        wd (int): The weekday.
240
241    Returns:
242        int: The calculated value of thamaphyu
243    """
244    mf = md % 16  # Calculate the fortnight day [0-15]
245    thamaphyu = 0  # Initialize thamaphyu
246    wda = [1, 2, 6, 6, 5, 6, 7]
247    if mf == wda[wd]:
248        thamaphyu = 1
249    wdb = [0, 1, 0, 0, 0, 3, 3]
250    if mf == wdb[wd]:
251        thamaphyu = 1
252    if mf == 4 and wd == 5:
253        thamaphyu = 1
254    return thamaphyu

Calculates the value of thamaphyu based on the inputs md and wd.

Args: md (int): The month day. wd (int): The weekday.

Returns: int: The calculated value of thamaphyu

def calculate_nagapor(md: int, wd: int) -> int:
257def calculate_nagapor(md: int, wd: int) -> int:
258    """
259    Calculates the value of nagapor based on the inputs md and wd.
260
261    Args:
262        md (int): The month day.
263        wd (int): The weekday.
264
265    Returns:
266        int: The calculated value of nagapor.
267    """
268    nagapor = 0
269    wda = [26, 21, 2, 10, 18, 2, 21]
270    wdb = [17, 19, 1, 0, 9, 0, 0]
271
272    if md in [wda[wd], wdb[wd]]:
273        nagapor = 1
274    elif (md == 2 and wd == 1) or (md in [12, 4, 18] and wd == 2):
275        nagapor = 1
276
277    return nagapor

Calculates the value of nagapor based on the inputs md and wd.

Args: md (int): The month day. wd (int): The weekday.

Returns: int: The calculated value of nagapor.

def calculate_yatyotema(mm: int, md: int) -> int:
280def calculate_yatyotema(mm: int, md: int) -> int:
281    """
282    Calculates the value of yatyotema based on the inputs mm and md.
283
284    Args:
285        mm (int): The month.
286        md (int): The month day.
287
288    Returns:
289        int: The calculated value of yatyotema.
290    """
291    mmt = mm // 13
292    mm = (mm % 13) + mmt  # to 1-12 with month type
293    if mm <= 0:
294        mm = 4  # first waso is considered waso
295    mf = md - 15 * (md // 16)  # get fortnight day [0-15]
296    yatyotema = 0
297    m1 = mm if mm % 2 else (mm + 9) % 12
298    m1 = ((m1 + 4) % 12) + 1
299    if mf == m1:
300        yatyotema = 1
301    return yatyotema

Calculates the value of yatyotema based on the inputs mm and md.

Args: mm (int): The month. md (int): The month day.

Returns: int: The calculated value of yatyotema.

def calculate_mahayatkyan(mm: int, md: int) -> int:
304def calculate_mahayatkyan(mm: int, md: int) -> int:
305    """
306    Calculates the value of `mahayatkyan` based on the inputs `mm` and `md`.
307
308    Args:
309        mm (int): The month.
310        md (int): The month day.
311
312    Returns:
313        int: The calculated value of `mahayatkyan`.
314    """
315    if mm <= 0:
316        mm = 4  # first waso is considered waso
317    mf = md - 15 * math.floor(md / 16)  # get fortnight day [0-15]
318    mahayatkyan = 0
319    m1 = ((math.floor((mm % 12) / 2) + 4) % 6) + 1
320    if mf == m1:
321        mahayatkyan = 1
322    return mahayatkyan

Calculates the value of mahayatkyan based on the inputs mm and md.

Args: mm (int): The month. md (int): The month day.

Returns: int: The calculated value of mahayatkyan.

def calculate_shanyat(mm: int, md: int) -> int:
325def calculate_shanyat(mm: int, md: int) -> int:
326    """
327    Calculates the value of 'shanyat' based on the inputs 'mm' and 'md'.
328
329    Args:
330        mm (int): The month.
331        md (int): The month day.
332
333    Returns:
334        int: The calculated value of 'shanyat'.
335    """
336    mmt = mm // 13
337    mm = (mm % 13) + mmt  # to 1-12 with month type
338    if mm <= 0:
339        mm = 4  # first waso is considered waso
340    mf = md - 15 * (md // 16)  # get fortnight day [0-15]
341    shanyat = 0
342    sya = [8, 8, 2, 2, 9, 3, 3, 5, 1, 4, 7, 4]
343    if mf == sya[mm - 1]:
344        shanyat = 1
345    return shanyat

Calculates the value of 'shanyat' based on the inputs 'mm' and 'md'.

Args: mm (int): The month. md (int): The month day.

Returns: int: The calculated value of 'shanyat'.

def calculate_astro_days(jd: float) -> list:
348def calculate_astro_days(jd: float) -> list:
349    """
350    Calculates the astrological days based on a given Julian Day Number (jd).
351
352    Args:
353        jd (float): The Julian Day Number for which the astrological days are to be calculated.
354
355    Returns:
356        list: A list of strings representing the calculated 
357        astrological days for the given Julian Day Number.
358    """
359    jdn = round(jd)
360    hs = []
361    yo = julian_to_burmese(jdn)
362    mm = yo["mm"]
363    md = yo["md"]
364    wd = (jdn + 2) % 7
365
366    if calculate_thamanyo(mm, wd):
367        hs.append("Thamanyo")
368    if calculate_amyeittasote(md, wd):
369        hs.append("Amyeittasote")
370    if calculate_warameittugyi(md, wd):
371        hs.append("Warameittugyi")
372    if calculate_warameittunge(md, wd):
373        hs.append("Warameittunge")
374    if calculate_yatpote(md, wd):
375        hs.append("Yatpote")
376    if calculate_thamaphyu(md, wd):
377        hs.append("Thamaphyu")
378    if calculate_nagapor(md, wd):
379        hs.append("Nagapor")
380    if calculate_yatyotema(mm, md):
381        hs.append("Yatyotema")
382    if calculate_mahayatkyan(mm, md):
383        hs.append("Mahayatkyan")
384    if calculate_shanyat(mm, md):
385        hs.append("Shanyat")
386
387    return hs

Calculates the astrological days based on a given Julian Day Number (jd).

Args: jd (float): The Julian Day Number for which the astrological days are to be calculated.

Returns: list: A list of strings representing the calculated astrological days for the given Julian Day Number.